LoginSignup
0
1

More than 5 years have passed since last update.

Python3.4.3 × Jupyter notebook ('module' object has no attribute 'ensure_future')

Posted at

背景

久しぶりにUbuntu機でjupyter notebookしようとしたらエラーが出た

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

どうも、'ensure_future'がないとのこと。
調べてみたら、Python3.4.4からasyncioでのensure_futureができたらしい。
自分のPythonが3.4.3なのでエラーでたみたい。

対処法

  • Pythonのバージョンをあげる
  • エラー箇所をダウングレードする(今回はこっち)

普通ならPython3.6系とかにすればいいと思うのですが、いろいろな理由により、後者で対応しました12

やったこと

$ pip freeze | grep XXX

これで、現在pipで入っているライブラリのバージョンが見えます。
私は実験用のPCを3台もってて、運良く1台はjupyterが動いていたので、差分を探しては、ひとつずつダウングレードさせていきました。

$ pip uninstall XXX
$ pip install YYY==version

変更部分は、以下の通りです。

notebook==5.2.2
jupyter-client==5.2.1
tornado==4.5.2

これでなんとか動いたので良しとします。(というか最初のエラーがtornadoだったので、tornadoだけでもよいと思います)


  1. 大学院修了後の残った実験だけに使うので、バージョンあげて実験しなおすのがめんどくさい。 

  2. 大学での作業は、なるべく安定性のある最新のOSでやったほうがいい(なんでUbuntu14.04なんて使ってるんだろう…) 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1