运行 "jupyter notebook" 在 vi​​rtualenv 中返回 AttributeError

running "jupyter notebook" in virtualenv returning AttributeError

我在 python3 的 virtualenv 中使用 pip 安装了 jupyter。在 运行:

jupyter notebook

我收到以下错误

    File "<path>/ss/bin/jupyter-notebook", line 7, in <module>
    from notebook.notebookapp import main
  File "<path>/ss/lib/python3.4/site-packages/notebook/notebookapp.py", line 44, in <module>
    from zmq.eventloop import ioloop
  File "<path>/ss/lib/python3.4/site-packages/zmq/eventloop/__init__.py", line 3, in <module>
    from zmq.eventloop.ioloop import IOLoop
  File "<path>/ss/lib/python3.4/site-packages/zmq/eventloop/ioloop.py", line 78, in <module>
    while _IOLoop.configurable_default() is not _IOLoop:
  File "<path>/ss/lib/python3.4/site-packages/tornado/ioloop.py", line 350, in configurable_default
    from tornado.platform.asyncio import AsyncIOLoop
  File "<path>/ss/lib/python3.4/site-packages/tornado/platform/asyncio.py", line 25, in <module>
    from tornado.gen import convert_yielded
  File "<path>/ss/lib/python3.4/site-packages/tornado/gen.py", line 1295, in <module>
    _wrap_awaitable = asyncio.ensure_future
AttributeError: 'module' object has no attribute 'ensure_future'

我使用

将每个依赖模块升级到最新版本

--upgrade

但它仍然给我同样的错误。

我通过将 tornado 包降级到 4.5 版解决了这个问题:

pip install tornado==4.5

当我在虚拟环境中使用 pip 安装 ipykernel 时,它会自动安装 tornado 作为最新版本。但是,我认为最新版本的龙卷风 python 版本低于 3.4.4 导致错误。

因此,我删除了 tornado 并 re-installed 版本为 4.5(此版本安装在我的其他虚拟环境中。)