Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing iPython: "ImportError cannot import name path"?

Tags:

python

ipython

I'm trying to install IPython. I have run pip install ipython[notebook] without any errors, but now I get this:

$ 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

I have the same error if I try to run import pickleshare at a Python console, or from path import path.

What can I do to fix this?

like image 304
Richard Avatar asked Aug 27 '15 14:08

Richard


3 Answers

Looks like this is a known issue, caused by a change in the path.py package. Reverting to an older version of path.py solves this :

sudo pip3 install -I path.py==7.7.1
like image 71
fatz Avatar answered Nov 05 '22 15:11

fatz


It appears that pickleshare is in package IPython.utils. Try tying

from IPython.utils.pickleshare import PickleShareDB 

Similarly, path is in IPython.external. Try typing

from IPython.external.path import path as Path

In either case, I would check if following files exist.

"/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"

All this points to the fact that probably your IPython/notebook version is old. A couple of solutions would be

1) Try editing files in site-packages and changing import lines to

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

But that's kind of risky, who knows what else might fail.

Otherwise, try upgrading ipython/notebook

pip install ipython --upgrade
pip install "ipython[notebook]" --upgrade
like image 25
Sudeep Juvekar Avatar answered Nov 05 '22 15:11

Sudeep Juvekar


I had similar issues and rolling back to an earlier version of path.py did not not help. I uninstalled the package and then IPython Notebook worked.

pip uninstall -y path.py

like image 4
Brian Spiering Avatar answered Nov 05 '22 14:11

Brian Spiering