web-dev-qa-db-fra.com

Ajouter à python chemin mac os x

J'ai pensé

import sys
sys.path.append("/home/me/mydir")

ajoute un répertoire à mon pythonpath

si j'imprime sys.path, mon répertoire est dedans.

Ensuite, j'ouvre une nouvelle commande et elle n'y est plus.

Mais de toute façon Python ne peux pas importer les modules que j'ai enregistrés dans ce répertoire.

Qu'est-ce que je fais mal?

J'ai lu .profile ou .bash_profile fera l'affaire.

Dois-je ajouter:

PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH

Pour que ça marche?

52
MacPython

Modifications apportées à sys.path _ s’applique uniquement pour la vie de cet interpréteur Python. Si vous souhaitez le faire de manière permanente, vous devez modifier la variable d’environnement PYTHONPATH:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH"
export PYTHONPATH

Notez que PATH est le chemin système des exécutables, qui est complètement séparé.

** Vous pouvez écrire ce qui précède en ~/.bash_profile et la source en utilisant source ~/.bash_profile

70
Matthew Flaschen

Je ne sais pas pourquoi la solution de Matthew n'a pas fonctionné pour moi (j'utilise peut-être OSX10.8 ou peut-être quelque chose à voir avec macports) Mais j’ai ajouté ce qui suit à la fin du fichier à ~/.profile

export PYTHONPATH=/path/to/dir:$PYTHONPATH

mon répertoire est maintenant sur le pythonpath -

my-macbook:~ aidan$ python
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/path/to/dir', ...  

et je peux importer des modules à partir de ce répertoire.

8
Aidan Ewen

La réponse de Mathew fonctionne pour le terminal python Shell, mais cela n'a pas fonctionné pour IDLE Shell dans mon cas car de nombreuses versions de python existaient avant que je les remplace toutes par Python2.7.7. Comment j'ai résolu le problème avec IDLE.

  1. Dans le terminal, cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. puis Sudo nano idlemain.py, entrez le mot de passe si nécessaire.
  3. après os.chdir(os.path.expanduser('~/Documents')) cette ligne, j’ai ajouté sys.path.append("/Users/admin/Downloads....") REMARQUE: remplace le contenu des guillemets par le répertoire dans lequel python module doit être ajouté
  4. pour enregistrer la modification, ctrl + x et entrée Maintenant, ouvrez inactif et essayez d’importer le module python, pas d’erreur pour moi !!!
2
Tennom

La définition de la variable d'environnement $ PYTHONPATH ne semble pas affecter les terminaux iPython de l'EDI du Spyder sur un Mac. Cependant, le menu de l'application Spyder contient un "gestionnaire PYTHONPATH". Ajouter mon chemin ici a résolu mon problème. Le "gestionnaire PYTHONPATH" est également persistant après le redémarrage des applications.

Ceci est spécifique à un Mac, car la définition de la variable d’environnement PYTHONPATH sur un ordinateur Windows donne le comportement attendu (des modules sont trouvés) sans utiliser le gestionnaire PYTHONPATH de Spyder.

2
Andros