Échec de l'importation IPython et python sys.path en général
Je suis en suivant ce post pour faire un ipython règle tous les virtualenvs.
De ce que je comprends, l'idée principale de la poste, c'est que lorsque dans un virtualenv, ipython ne peut pas trouver ses modules.
(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
Pour contourner ce problème, j'ai ajouter à mon /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")
Cette astuce fonctionne pour Balthazar. Mais dans mon cas, j'obtiens ce
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
J'ai pensé que je devrais peut-être ajouter /usr/lib/python2.7/dist-packages/IPython/external
à sys.path
dans /usr/bin/ipython
. Ce que je reçois est
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
Cette erreur s'est produite sur la ligne 43 de IPython/__init__py
mais la précédente s'est produite sur la ligne 46.
- Comment puis-je faire ipython travailler avec virtualenv?
- Comment pouvez ajouter
/usr/lib/python2.7/dist-packages/IPython/external
àsys.path
résultant d'une nouvelle erreur? - Que devrais-je lire pour avoir une meilleure compréhension de python chemin d'importation?
Merci!
PS:
normal IPython sys.chemin
['',
'/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']
source d'informationauteur zjk | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
IPython semble fonctionner maintenant!
Parce que ipython ne peut pas trouver simplegeneric. J'ai essayé de localiser simplegeneric et trouvé simplegeneric est dans '/usr/lib/pymodules/python2.7'. Après '/usr/lib/pymodules/python2.7' ajoutée, ipython fonctionne très bien.
Jeff Tratner commentaire aide vraiment!
Si vous installez
ipython3
à l'aide deapt-get
vous ne ferait pas face à des problèmes comme ça.Au lieu de
ipython
vous devez taperipython3
sur le terminal.Pour Python 2 utilisez
ipython2
.De faire des changements pour que le chemin ne pas aider d'une quelconque manière. Cependant l'exécution de ipython en tant que super-utilisateur travaillé (même si je ne suis pas fier de l'être!)
pip install ipython
au lieu deapt-get install ipython
. L'ancien s'installe dans le virtualenv, ce dernier s'installe dans votre système de paquets python.J'ai eu le même problème, dans mon cas, la cause de cela était que le répertoire: /usr/lib/python2.7/dist-packages n'a pas été ajouté le chemin d'accès lorsque l'environnement virtuel a été créé (je voudrais savoir pourquoi)
Dans mon cas, les personnes suivantes dans le terminal a résolu le problème:
Note: Ceci suppose que vous utilisez virtualenvwrapper
Dans mon cas, c'était un paquet plus haut dans mon personnalisés Python chemin nommé "chemin" qui était à l'origine du ImportError à partir de:
Voir https://github.com/ipython/ipython/issues/3994
J'ai connu une certaine étrangeté dans un nouveau ubuntu hôte, et réalisé que j'étais à obtenir des comportements différents pour mkvirtualenv sur mac par rapport à la ubuntu. Je suis passé cette différence avec
Pour moi, la solution a été de de mise à niveau IPython de 0.13.2 du nouveau 4.0.0.
Similaire
traceback
j'ai vécu avecpython 3.5.4
etpip 10.0.1
après l'installation deipython
avec succès.mise à jour ou l'installation de la
simplegeneric
je.esudo pip install simplegeneric --upgrade
- je obtenirAprès un premier essai j'ai cherché sur google/stackoverflow pour voir si quelqu'un d'autre étaient confrontés au même problème et a trouvé ça. Et son @zjk réponse qui m'aide à trouver la solution.
Solutions:
Trouvé seulement
egg
dossier dans lepython3.5
paquet installé dir. J'ai donc enlevé les frais et installer lesimplegeneric
.après que ipython a travaillé comme un charme.
N. B: j'ai installer le package de mise à niveau du système, c'est pourquoi
sudo
nécessaire.