AttributeError: модуль «asyncio» не имеет атрибута. Ошибка «run» возникает, когда вы «используете функцию asyncio.run(), но используете более старую версию Python, которая не имеет этой функции». Функция asyncio.run() была представлена в Python 3.7.
Как исправить AttributeError: модуль «asyncio» не имеет атрибута «run»
Вот три способа исправить ошибку.
- Обновите версию Python до >=3.7.
- Обновите модуль asyncio.
- Использование функции цикла.run_until_complete(main()).
Решение 1. Обновите версию Python
Если вы используете MacOS, загрузите установщик на веб-сайт Python.
Если вы используете Linux или macOS, вы можете использовать менеджер пакетов, например apt, yum или Brew, для обновления Python.
|
1 2 3 |
sudo apt-get update sudo apt-get install python3.9 |
Вы можете использовать команду python –version, чтобы проверить текущую версию Python.
Следует отметить, что обновление версии Python может повлиять на установленные пакеты, поэтому после обновления вам следует протестировать свой код и зависимости.
После обновления Python вы можете использовать функцию «asyncio.run()».
|
1 2 3 4 5 6 |
import asyncio async def main(): print("The Last of Us!") asyncio.run(main()) |
Выход
|
1 |
The Last of Us! |
Решение 2. Обновите модуль asyncio.
Чтобы обновить модуль asyncio, вы можете использовать команду «pip install –upgrade asyncio».

Решение 3. Использование функции цикла.run_until_complete(main())
Вы используете функцию цикла.run_until_complete(main()) для исправления AttributeError. Метод loop.run_until_complete(main()) запускает асинхронную функцию с использованием цикла событий. Он запускает одну асинхронную функцию и останавливает цикл событий после завершения функции.
|
1 2 3 4 5 6 7 8 |
import asyncio async def main(): print("The Last of Us!") loop = asyncio.get_event_loop() loop.run_until_complete(main()) |
Выход
|
1 |
The Last of Us! |
И мы получили ожидаемый результат!
Функция Python asyncio.run() запускает асинхронную функцию, используя цикл событий. Асинхронную функцию удобно запускать без создания и управления циклом событий вручную.


