我正在使用 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 的同时,有什么方法可以避免它吗?
快速解决
只需降级包:
pip install -I path.py==7.7.1
解释
有一个提交 (62ccb76) https://github.com/jaraco/path.py/commit/62ccb7623d4d048af663f205e21c2ec3f24fa17d几个小时前制作的,删除了path
别名和凹凸path.py
版本为0.8
。显然,为了修复问题 #102 https://github.com/jaraco/path.py/issues/102:
Removed path.path
。客户现在必须引用规范名称,path.Path
如 6.2 中介绍的。
然而,pickleshare
尚未更新并继续使用旧别名。
问题已经被报道过 https://github.com/pickleshare/pickleshare/issues/8,并希望尽快修复。我创建拉取请求 https://github.com/pickleshare/pickleshare/pull/9如果有帮助的话。
Update
拉取请求已经被合并并且8.1 版path.py添加了path再次别名 https://github.com/jaraco/path.py/commit/3520e8f143a8ded9d5fa8e66038c1db3e75b112a(现在将生成警告)。所以用户现在不应该遇到这个问题。
将包更新到版本8.1
现在也应该解决这个问题:
pip install -I path.py==8.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)