【问题标题】:Installing iPython: "ImportError cannot import name path"?安装 iPython:“ImportError 无法导入名称路径”?
【发布时间】:2023-09-11 02:48:01
【问题描述】:

我正在尝试安装 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,我会遇到同样的错误。

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

【问题讨论】:

标签: python ipython


【解决方案1】:

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

sudo pip3 install -I path.py==7.7.1

【讨论】:

    【解决方案2】:

    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
    

    【讨论】:

    • 只是“pip install ipython --upgrade”是我的解决方案。
    【解决方案3】:

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

    pip uninstall -y path.py

    【讨论】:

      【解决方案4】:

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

      python -m pip install matplotlib
      

      或:

      conda install matplotlib
      

      我的猜测是这可以应用于 IPython。

      【讨论】:

        【解决方案5】:

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

        【讨论】: