无法在 Jupyter 中并行导入 IPython

Fail to import IPython parallel in Jupyter

我最近将 IPython 更新到 4.0.0 并安装了 Jupyter 4.0.6。

我想使用 Ipython 并行,在启动笔记本中的引擎后,我导入:

from IPython import parallel

失败了:

~/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.
  warn("IPython.utils.traitlets has moved to a top-level traitlets package.")
~/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/utils/pickleutil.py:3: UserWarning: IPython.utils.pickleutil has moved to ipykernel.pickleutil
  warn("IPython.utils.pickleutil has moved to ipykernel.pickleutil")
~/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/utils/jsonutil.py:3: UserWarning: IPython.utils.jsonutil has moved to jupyter_client.jsonutil
  warn("IPython.utils.jsonutil has moved to jupyter_client.jsonutil")
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-5652e9e33a4d> in <module>()
----> 1 from IPython import parallel

~/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/parallel/__init__.py in <module>()
     31 
     32 from .client.asyncresult import *
---> 33 from .client.client import Client
     34 from .client.remotefunction import *
     35 from .client.view import *

~/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/parallel/client/client.py in <module>()
     38 from IPython.utils.capture import RichOutput
     39 from IPython.utils.coloransi import TermColors
---> 40 from IPython.utils.jsonutil import rekey, extract_dates, parse_date
     41 from IPython.utils.localinterfaces import localhost, is_local_ip
     42 from IPython.utils.path import get_ipython_dir

ImportError: cannot import name rekey

所以我尝试了:

pip install rekey

但是没有找到分布。

请注意,无论是使用 ipython notebookjupyter notebook 打开,还是在控制台中,它都会以同样的方式失败。

另请注意,有一个警告:

UserWarning: IPython.utils.jsonutil has moved to jupyter_client.jsonutil

但是rekey模块中不存在jupyter_client.jsonutil

问题:如何让 IPython 并行在 Jupyter 中工作? 我错过了什么?

我找到了我认为的问题(至少它有效):


编辑:我得到了这个 OSError,但是这个修复显然是无用的,而且它在没有的情况下也能工作。不过,我仍然不明白为什么会出现此错误。

  • 然后,我在启动客户端时又出现了另一个错误:

    OSError: Connection file '~/.ipython/profile_default/security/ipcontroller-client.json' not found.
    You have attempted to connect to an IPython Cluster but no Controller could be found.
    Please double-check your configuration and ensure that a cluster is running.
    

所以我只是将目录~/.ipython/profile_default复制到~/.jupyter/profile_default

而且有效!