错误 运行 全新安装 iPython

Error running a fresh install of iPython

我正在使用 virtualenvwrapper,因此任何人都可以轻松地复制它,但是直接在我的系统上使用 pip 也会发生这种情况。

安装 iPython 和 pip 后,我将无法 运行 它(注意我使用的是 Python 2 解释器,尽管完全相同如果我使用 Python 3):

就会发生
$ mkvirtualenv -p python2 test
$ pip install --upgrade pip      # Just in case...
$ pip install ipython
$ ipython
Traceback (most recent call last):
  File "/home/peque/.virtualenvs/test/bin/ipython", line 7, in <module>
    from IPython import start_ipython
  File "/home/peque/.virtualenvs/test/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .terminal.embed import embed
  File "/home/peque/.virtualenvs/test/lib/python2.7/site-packages/IPython/terminal/embed.py", line 16, in <module>
    from IPython.core.interactiveshell import DummyMod
  File "/home/peque/.virtualenvs/test/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 31, in <module>
    from pickleshare import PickleShareDB
  File "/home/peque/.virtualenvs/test/lib/python2.7/site-packages/pickleshare.py", line 41, in <module>
    from path import path as Path
ImportError: cannot import name path

现在,我在这个简单的步骤之后安装的软件包是:

$ pip freeze
decorator==4.0.2
ipython==4.0.0
ipython-genutils==0.1.0
path.py==8.0
pexpect==3.3
pickleshare==0.5
simplegeneric==0.8.1
traitlets==4.0.0

为什么会出现此错误?在仍然使用 iPython 版本 4 时有什么方法可以避免它?

您的导入看起来不正确,https://pypi.python.org/pypi/path.py

from path import Path

您可能在系统范围内安装了 Ipython。 运行 workon test 开始前 ipython.

快速修复

刚刚降级包:

pip install -I path.py==7.7.1

解释

有个commit (62ccb76) made a couple of hours ago that removes the path alias and bumps path.py version to 0.8. Apparently, in order to fix Issue #102:

Removed path.path. Clients must now refer to the canonical name, path.Path as introduced in 6.2.

不过,pickleshare还没有更新,继续使用旧的别名。

问题 has already been reported, and hope it will be fixed soon. I created a pull request 以防有帮助。

更新

拉取请求已被合并 version 8.1 of path.py adds the path alias again(现在将生成警告)。所以用户现在应该不会遇到这个问题。

将软件包更新到版本 8.1 现在应该也可以解决问题:

pip install -I path.py==8.1