Документация Python неофициальный перевод
Содержание страницы

Поддержка платформPlatform Support

Модуль asyncio спроектирован переносимым, однако на некоторых платформах есть тонкие различия и ограничения, обусловленные базовой архитектурой и возможностями платформ.

Все платформыAll Platforms

Windows

Все циклы событий в Windows не поддерживают следующие методы:

SelectorEventLoop имеет следующие ограничения:

ProactorEventLoop имеет следующие ограничения:

Разрешение монотонных часов в Windows обычно составляет около 15,6 мс. Наилучшее разрешение – 0,5 мс. Разрешение зависит от оборудования (наличие HPET) и конфигурации Windows.

Поддержка подпроцессов в WindowsSubprocess Support on Windows

SelectorEventLoop в Windows не поддерживает подпроцессы. В Windows вместо этого следует использовать ProactorEventLoop:

import asyncio

asyncio.set_event_loop_policy(
    asyncio.WindowsProactorEventLoopPolicy())

asyncio.run(your_code())

Функция policy.set_child_watcher() также не поддерживается, поскольку ProactorEventLoop использует другой механизм для наблюдения за дочерними процессами.

macOS

Современные версии macOS полностью поддерживаются.

macOS <= 10.8

На macOS 10.6, 10.7 и 10.8 цикл событий по умолчанию использует selectors.KqueueSelector, который не поддерживает символьные устройства в этих версиях. SelectorEventLoop можно настроить вручную для использования SelectSelector или PollSelector, чтобы обеспечить поддержку символьных устройств на этих старых версиях macOS. Пример:

import asyncio
import selectors

selector = selectors.SelectSelector()
loop = asyncio.SelectorEventLoop(selector)
asyncio.set_event_loop(loop)