我试图在jupyter-notebook上运行以下代码
from tornado.httpclient import AsyncHTTPClient
from tornado.ioloop import IOLoop
async def fetch_coroutine(url):
http_client = AsyncHTTPClient()
response = await http_client.fetch(url)
return response.body
url = 'http://www.tornadoweb.org/en/stable/'
loop = IOLoop.current()
loop.run_sync(lambda : fetch_coroutine(url))
它不断给我以下错误:
RuntimeError: IOLoop is already running
但是,如果我只是在ipython终端中运行它,那么它会按预期运行。
知道为什么它不能在jupyter笔记本中运行吗?
我在python3上,龙卷风版本4.4.2
答案 0 :(得分:1)
Jupyter在内部使用Tornado,因此IOLoop.current()
指的是Jupyter已经开始的IOLoop
。使上述代码工作的最简单方法是创建一个新的IOLoop:使用loop = IOLoop()
而不是loop = IOLoop.current()
。