asyncio.ensure_future на ElasticBeanstalk (Python 3.6) - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь использовать эластичный beanstalk для запуска приложения asyncio python.Эластичный beanstalk, по-видимому, работает на Python 3.6.5.

Я получаю ошибки при попытке использовать sure_future от asyncio:

module 'asyncio' has no attribute 'ensure_future'

Я также пытался "из asyncio import sure_future" и получилошибка импорта.

Я пытался использовать .ebextensions для принудительного обновления asyncio.Также попытался использовать файл require.txt, чтобы заставить asyncio работать с версией, которая, как я знаю, работает с моим приложением (asyncio == 3.4.3), но обе безрезультатно.

Также пробовал

try:
  from asyncio import ensure_future
except ImportError:
  from asyncio import async as ensure_future

А потом я только что получил ошибку при вызове sure_future:

Traceback (most recent call last):
File "/usr/lib64/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File 
"main_async_tasks_crawler.py", line 96, in main
 asyncio.get_event_loop().run_until_complete(ensure_future(async_main()))
 File "/opt/python/run/venv/local/lib/python3.6/site-packages/asyncio/tasks.py", line 516, in async
raise TypeError('A Future or coroutine is required')
TypeError: A Future or coroutine is required                                                                        

мой аргумент (async_main ()) является асинхронной функцией ..

У меня сейчас нет идей

1 Ответ

0 голосов
/ 05 октября 2018

asyncio является частью стандартной библиотеки Python3.6, вы не должны устанавливать ее через pip.

asyncio == 3.4.3 действительно старая, в то время не было такой вещи, как "асинхронная функция ", поэтому он не знает, как с ними работать.

...