2017-01-28 11 views
0

私はjupyter-ノートjupyterノートブックから実行したときに、竜巻AsyncHTTPClientの動作が異なるのはなぜですか?

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-notebook内で実行されないのでしょうか?私はのpython3によ

、竜巻バージョン4.4.2

答えて

1

Jupyterは内部でトルネードを使用するため、IOLoop.current()はJupyterが既に開始されているIOLoopを指します。上記のコードを実行する最も簡単な方法は、新しいIOLoopを作成することです:loop = IOLoop.current()の代わりにloop = IOLoop()を使用してください。

関連する問題