Niepowodzenie importu IPython i ogólnie python sys.path

Idę za tymsłupek sprawić, by jeden ipython rządził wszystkimi wirtualenami.

Z tego, co rozumiem, główną ideą postu jest to, że kiedy jest w virtualenv, ipython nie może znaleźć swoich modułów.

(a-virtualenv)me@pc:~$ ipython
Traceback (most recent call last):
  File "/usr/bin/ipython", line 19, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
ImportError: No module named IPython.frontend.terminal.ipapp

Aby obejść ten problem, dodam to do mojego / usr / bin / ipython

import sys
if "/usr/lib/python2.7/dist-packages" not in sys.path:
    sys.path.append("/usr/lib/python2.7/dist-packages")

Ta sztuczka działa dla Balthazara. Ale w moim przypadku to rozumiem

Traceback (most recent call last):
  File "/usr/bin/ipython", line 18, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 46, in <module>
    from .frontend.terminal.embed import embed
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/embed.py", line 37, in <module>
    from IPython.frontend.terminal.ipapp import load_default_config
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/ipapp.py", line 38, in <module>
    from IPython.core.completer import IPCompleter
  File "/usr/lib/python2.7/dist-packages/IPython/core/completer.py", line 84, in <module>
    from IPython.utils import generics
  File "/usr/lib/python2.7/dist-packages/IPython/utils/generics.py", line 19, in <module>
    from IPython.external.simplegeneric import generic
  File "/usr/lib/python2.7/dist-packages/IPython/external/simplegeneric/__init__.py", line 4, in <module>
    from _simplegeneric import *
ImportError: No module named _simplegeneric

Myślałem, że powinienem dodać/usr/lib/python2.7/dist-packages/IPython/external dosys.path w/usr/bin/ipython także. Co dostaję

Traceback (most recent call last):
  File "/usr/bin/ipython", line 18, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 43, in <module>
    from .config.loader import Config
  File "/usr/lib/python2.7/dist-packages/IPython/config/loader.py", line 27, in <module>
    from IPython.utils.path import filefind, get_ipython_dir
  File "/usr/lib/python2.7/dist-packages/IPython/utils/path.py", line 24, in <module>
    from IPython.utils.process import system
  File "/usr/lib/python2.7/dist-packages/IPython/utils/process.py", line 27, in <module>
    from ._process_posix import _find_cmd, system, getoutput, arg_split
  File "/usr/lib/python2.7/dist-packages/IPython/utils/_process_posix.py", line 27, in <module>
    from IPython.utils import text
  File "/usr/lib/python2.7/dist-packages/IPython/utils/text.py", line 27, in <module>
    from IPython.external.path import path
ImportError: cannot import name path

Ten błąd wystąpił w linii 43IPython/__init__py, ale poprzedni wystąpił w linii 46.

Jak mogę sprawić, by ipython działał z virtualenv?

Jak dodać/usr/lib/python2.7/dist-packages/IPython/external dosys.path spowodował nowy błąd?

Co powinienem przeczytać, aby lepiej zrozumieć ścieżkę importu Pythona?

Dzięki!

PS: normalny IPython sys.path

['',
 '/usr/bin',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/python2.7/dist-packages/gst-0.10',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
 '/usr/lib/python2.7/dist-packages/ubuntuone-couch',
 '/usr/lib/python2.7/dist-packages/ubuntuone-installer',
 '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
 '/usr/lib/python2.7/dist-packages/IPython/extensions']

questionAnswers(9)

yourAnswerToTheQuestion