AttributeError: у модуля «asyncio» нет атрибута create_task.Python

Программы на Python
Ответить
Anonymous
 AttributeError: у модуля «asyncio» нет атрибута create_task.

Сообщение Anonymous »

Я пытаюсь вызвать asyncio.create_task(), но получаю ошибку:
Вот пример:
import asyncio
import time

async def async_say(delay, msg):
await asyncio.sleep(delay)
print(msg)

async def main():
task1 = asyncio.create_task(async_say(4, 'hello'))
task2 = asyncio.create_task(async_say(6, 'world'))

print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Выход:
AttributeError: module 'asyncio' has no attribute 'create_task'


Поэтому я попробовал использовать следующий фрагмент кода (.ensure_future()) вместо этого без проблем:
async def main():
task1 = asyncio.ensure_future(async_say(4, 'hello'))
task2 = asyncio.ensure_future(async_say(6, 'world'))

print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Выход:
started at 13:19:44
hello
world
finished at 13:19:50


Что не так?

[ПРИМЕЧАНИЕ]:
  • Python 3.6
  • Ubuntu 16.04
[ОБНОВЛЕНИЕ]:
Благодаря заимствованию ответа @user4815162342 моя проблема решена:
async def main():
loop = asyncio.get_event_loop()
task1 = loop.create_task(async_say(4, 'hello'))
task2 = loop.create_task(async_say(6, 'world'))

print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())


Подробнее здесь: https://stackoverflow.com/questions/532 ... reate-task
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»