web-dev-qa-db-fra.com

Impossible de charger les modules Python installés via pip depuis le répertoire site-packages

J'essaie d'installer et d'utiliser le module Evernote ( https://github.com/evernote/evernote-sdk-python ). J'ai couru pip install evernote Et il est dit que l'installation a fonctionné.

Je peux confirmer que le module evernote existe dans /usr/local/lib/python2.7/site-packages. Cependant, lorsque j'essaie d'exécuter python -c "import evernote", L'erreur suivante apparaît:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named evernote

Voici le contenu de mon .bash-profile:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"
export PATH
export PATH=$PATH:/usr/local/bin/

J'ai le même problème avec d'autres modules installés avec pip. Aidez-moi?

EDIT: Je suis un super débutant et n'ai pas édité ce fichier .bash-profile.

EDIT: python -c 'import sys; print "\n".join(sys.path)' Émet ce qui suit:

/Library/Python/2.7/site-packages/setuptools-1.3.2-py2.7.Egg
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages

EDIT: Il semblait que je progressais vers une solution en ajoutant export PYTHONPATH=“/usr/local/lib/python2.7/site-packages” À mon fichier .bash_profile. Cependant, maintenant, lorsque je lance python -c 'from evernote.api.client import EvernoteClient', Il tente d'importer oauth2, qui échoue avec la même erreur. Le module ouath2 est présent dans le répertoire du module.

50
Chase McCoy

/usr/bin/python est l'exécutable de python fourni avec OS X. /usr/local/lib est un emplacement réservé aux programmes installés par l'utilisateur, éventuellement à partir de Python.org ou de Homebrew. Donc, vous mélangez différents Python installations, et vous modifiez le chemin python ne constitue qu'une solution de contournement partielle pour différents packages installés pour différentes installations.

Afin de vous assurer que vous utilisez le pip associé à un python particulier, vous pouvez exécuter python -m pip install <pkg>, ou allez voir ce que le pip sur votre chemin est, ou est lié symboliquement à.

78
Jason S

Je l'ai compris! J'ai ajouté cette ligne:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

à mon .bash_profile et je peux maintenant importer les modules stockés dans ce répertoire. Merci à tous ceux qui ont répondu.

57
Chase McCoy

J'ai rencontré un problème similaire, il est lié à /usr/local/lib/python2.7/site-packages sans autorisation de lecture ou d'écriture pour group et other, et ils sont la propriété de root. Cela signifie que seul l'utilisateur root peut y accéder.

Essaye ça:

$ Sudo chmod -R go+rX /usr/local/lib/python2.7/site-packages
5
prarit lamba

Rien de tout cela ne m'a aidé avec mon problème similaire. Au lieu de cela, je devais réparer les fichiers nouvellement installés autorisations pour pouvoir importer. C’est généralement une chose évidente, mais pas autant lorsque vous utilisez Sudo lors de l’installation du module/paquet.

4
cnaak