正在安装iPython:“ImportError无法导入名称路径”?

2024-04-16 14:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在安装IPython。我运行pip install ipython[notebook]时没有任何错误,但现在我得到:

$ ipython notebook
Traceback (most recent call last):
  File "/Users/me/.virtualenvs/.venv/bin/ipython", line 7, in <module>
    from IPython import start_ipython
  File "/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .terminal.embed import embed
  File "/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/IPython/terminal/embed.py", line 16, in <module>
    from IPython.core.interactiveshell import DummyMod
  File "/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 31, in <module>
    from pickleshare import PickleShareDB
  File "/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/pickleshare.py", line 41, in <module>
    from path import path as Path
ImportError: cannot import name path

如果我试图在Python控制台上运行import pickleshare,或者from path import path,我也会遇到同样的错误。

我能做什么来解决这个问题?


Tags: pathinfromimportvenvlibipythonline
3条回答

我也有类似的问题,回滚到早期版本的path.py也没有帮助。我卸载了这个包,然后IPython笔记本就工作了。

pip uninstall -y path.py

似乎pickleshare在包IPython.utils中。试着打领带

from IPython.utils.pickleshare import PickleShareDB 

类似地,pathIPython.external中。试着打字

from IPython.external.path import path as Path

无论哪种情况,我都会检查是否存在以下文件。

"/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/IPython/utils/pickleshare.py"
"/Users/me/.virtualenvs/.venv/lib/python2.7/site-packages/IPython/external/path/_path.py"

所有这些都表明了一个事实,那就是你的IPython/笔记本版本可能已经过时了。两个解决方案是

1)尝试编辑网站包中的文件并将导入行更改为

from IPython.external.path import path as Path
from IPython.utils.pickleshare import PickleShareDB

但这有点冒险,谁知道还有什么可能会失败。

否则,请尝试升级ipython/notebook

pip install ipython --upgrade
pip install "ipython[notebook]" --upgrade

看起来这是一个known issue,由path.py包中的更改引起。还原到较旧版本的path.py可以解决以下问题:

sudo pip3 install -I path.py==7.7.1

相关问题 更多 >