正在安装 iPython:"ImportError cannot import name path"?

Installing iPython: "ImportError cannot import name path"?

我正在尝试安装 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 picklesharefrom path import path.

,我会遇到同样的错误

我该怎么做才能解决这个问题?

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/notebook 版本很可能是旧的。几个解决方案是

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

我遇到了类似的问题,回滚到 path.py 的早期版本并没有帮助。我卸载了软件包,然后 IPython Notebook 工作了。

pip uninstall -y path.py

我在 Windows 10 上尝试导入 matplotlib 时收到此错误。我的问题是 matplotlib 需要更新。我只是运行下面的代码:

python -m pip install matplotlib

或:

conda install matplotlib

我猜这可以应用于 IPython。

这对我有用,使用: from pathlib import Path