首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.6和ValueError:循环参数必须与Future一致

Python3.6和ValueError:循环参数必须与Future一致
EN

Stack Overflow用户
提问于 2017-10-18 16:48:52
回答 1查看 6K关注 0票数 14

我只想运行一个简单的测试示例,但我得到了下面的错误。我该如何解析?

代码语言:javascript
复制
import asyncio
import uvloop
import concurrent.futures
import time
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

async def do_some_work(x):

    while True:
        print("Waiting " + str(x))
        await asyncio.sleep(x)

if __name__ == '__main__': 


    loop = asyncio.new_event_loop()
    tasks = [asyncio.ensure_future(do_some_work(2)), 
             asyncio.ensure_future(do_some_work(5))]
    loop.run_until_complete(asyncio.gather(*tasks))

Traceback (most recent call last):
  File "/Users/worker_why.py", line 23, in <module>
    loop.run_until_complete(asyncio.gather(*tasks))
  File "uvloop/loop.pyx", line 1181, in uvloop.loop.Loop.run_until_complete (uvloop/loop.c:25184)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py", line 508, in ensure_future
    raise ValueError('loop argument must agree with Future')
ValueError: loop argument must agree with Future
EN

回答 1

Stack Overflow用户

发布于 2017-10-18 18:54:20

代码语言:javascript
复制
loop = asyncio.new_event_loop()

如果您创建了新的事件循环,并且不想将其传递到任何地方,那么您还应该将此循环设置为当前上下文:

代码语言:javascript
复制
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46806174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档