我正在使用virtualenvwrapper,所以任何人都可以轻松地重现它,但是直接在我的系统上使用pip
也会发生这种情况。
使用pip
安装iPython后,我无法运行它(注意我使用的是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时避免使用它?
答案 0 :(得分:7)
刚刚降级包裹:
pip install -I path.py==7.7.1
几小时前发布的commit (62ccb76)删除了path
别名,并将path.py
版本提升为0.8
。显然,为了解决Issue #102:
已移除
path.path
。客户现在必须引用6.2中引入的规范名称path.Path
。
但是,pickleshare
尚未更新并继续使用旧别名。
问题has already been reported,希望很快得到解决。我创建a pull request以防万一。
拉取请求已合并,version 8.1 of path.py
adds the path
alias again(现在将生成警告)。所以用户现在不应该遇到这个问题。
将软件包更新到版本8.1
也应该现在解决问题:
pip install -I path.py==8.1
答案 1 :(得分:2)
您的导入看起来不正确,https://pypi.python.org/pypi/path.py
from path import Path
答案 2 :(得分:0)
您可能已在系统范围内安装了Ipython。只需在启动ipython之前运行workon test
。