ElasticBeanstalk上的asyncio.ensure_future(Python 3.6)

时间:2018-10-04 16:38:43

标签: python-3.x python-asyncio amazon-elastic-beanstalk

我正在尝试使用弹性beantalk来运行asyncio python应用程序。 弹性beantalk似乎正在运行python 3.6.5。

尝试使用asyncio中的suresure_future时出现错误:

module 'asyncio' has no attribute 'ensure_future'

我还尝试了“从asyncio import sure_future”并得到导入错误。

我尝试使用.ebextensions强制升级asyncio。 还尝试使用requirements.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 :(得分:2)

asyncio是Python3.6标准库的一部分,您不能通过pip安装它。

asyncio == 3.4.3确实很老,那时还没有“异步功能”之类的东西,所以它不知道如何使用它们。