Chaque fois que j'utilise sys.path.append
, le nouveau répertoire sera ajouté. Cependant, une fois que je ferme python, la liste reviendra aux valeurs précédentes (par défaut?). Comment ajouter définitivement un répertoire à PYTHONPATH
?
la source
Chaque fois que j'utilise sys.path.append
, le nouveau répertoire sera ajouté. Cependant, une fois que je ferme python, la liste reviendra aux valeurs précédentes (par défaut?). Comment ajouter définitivement un répertoire à PYTHONPATH
?
Vous devez ajouter votre nouveau répertoire à la variable d'environnement PYTHONPATH
, séparé par deux points du contenu précédent de celle-ci. Dans n'importe quelle forme d'Unix, vous pouvez le faire dans un script de démarrage approprié au shell que vous utilisez ( .profile
ou quoi que ce soit, selon votre shell préféré) avec une commande qui, encore une fois, dépend du shell en question; dans Windows, vous pouvez le faire via l'interface graphique du système à cet effet.
superuser.com
peut être un meilleur endroit pour demander plus, c'est-à-dire pour plus de détails si vous avez besoin de détails sur la façon d'enrichir une variable d'environnement dans la plate-forme et le shell de votre choix, car ce n'est pas vraiment une question de programmation en soi.
Si vous utilisez bash (sur une distribution Mac ou GNU / Linux), ajoutez ceci à votre
~/.bashrc
la source
~/.bashrc
puis exécutezsource ~/.bashrc
voir stackoverflow.com/questions/2518127/…sudo su
au début de votre fichier .bashrc. Ce message est d'accord avec moi. Sur mon système, au moins, ce n'est même pas nécessaire.Au lieu de manipuler,
PYTHONPATH
vous pouvez également créer un fichier de configuration de chemin . Découvrez d'abord dans quel répertoire Python recherche ces informations:Pour une raison quelconque, cela ne semble pas fonctionner dans Python 2.7. Là, vous pouvez utiliser:
Créez ensuite un
.pth
fichier dans ce répertoire contenant le chemin que vous souhaitez ajouter (créez le répertoire s'il n'existe pas).Par exemple:
la source
python -m site --user-site
et les(create the directory if it doesn't exist)
parties étaient ce que je manque à la faire fonctionner.somelib.pth
? Sinon, devinez pourquoi cela pourrait ne pas fonctionner?Cela fonctionne sous Windows
Ensuite, vous pourrez voir tous les modules dans ces chemins à partir de vos scripts.
la source
Si quelqu'un est toujours confus - si vous êtes sur un Mac, procédez comme suit:
open .bash_profile
export PYTHONPATH=$PYTHONPATH:foo/bar
la source
export
clé était la chose qui me manquait !!!!, a voté, merci beaucoup!Vous pouvez ajouter le chemin via votre fichier pythonrc, qui est par défaut ~ / .pythonrc sous linux. c'est à dire.
Vous pouvez également définir la
PYTHONPATH
variable d'environnement, dans un fichier rc global, tel que~/.profile
sur mac ou linux, ou via le Panneau de configuration -> Système -> onglet Avancé -> Variables d'environnement sur Windows.la source
Pour donner un peu plus d'explications, Python construira automatiquement ses chemins de recherche (comme mentionné ci - dessus et ici ) en utilisant le
site.py
script (généralement situé dans sys.prefix +lib/python<version>/site-packages
aussilib/site-python
). On peut obtenir la valeur de sys.prefix:Le script site.py ajoute ensuite un certain nombre de répertoires, en fonction de la plate-forme, par exemple
/usr/{lib,share}/python<version>/dist-packages
,/usr/local/lib/python<version>/dist-packages
au chemin de recherche et recherche également dans ces chemins des<package>.pth
fichiers de configuration qui contiennent des chemins de recherche supplémentaires spécifiques. Par exemple, easy-install conserve sa collection de packages installés qui sont ajoutés à un fichier spécifique au système, par exemple sur Ubuntu c'est/usr/local/lib/python2.7/dist-packages/easy-install.pth
. Sur un système typique, il y a un tas de ces fichiers .pth autour qui peuvent expliquer certains chemins inattendus dans sys.path:Ainsi, on peut créer un fichier .pth et mettre dans l'un de ces répertoires (y compris le sitedir comme mentionné ci - dessus ). Cela semble être la façon dont la plupart des packages sont ajoutés au sys.path au lieu d'utiliser le PYTHONPATH.
Remarque: Sur OSX, il y a un chemin de recherche supplémentaire spécial ajouté par site.py pour les `` builds de framework '' (mais semble fonctionner pour une utilisation normale de la ligne de commande de python):
/Library/Python/<version>/site-packages
(par exemple pour Python2.7:)/Library/Python/2.7/site-packages/
qui est où les packages tiers sont supposés à installer (voir le fichier README dans ce répertoire). On peut donc y ajouter un fichier de configuration de chemin contenant des chemins de recherche supplémentaires, par exemple créer un fichier appelé/Library/Python/2.7/site-packages/pip-usr-local.pth
qui contient/usr/local/lib/python2.7/site-packages/
, puis le système python ajoutera ce chemin de recherche.la source
Pour moi, cela a fonctionné lorsque j'ai changé le
.bash_profile
fichier. Le simple changement de.bashrc
fichier ne fonctionnait que jusqu'à ce que je redémarre le shell.Pour python 2.7, il devrait ressembler à ceci:
à la fin du
.bash_profile
fichier.la source
Sous linux, vous pouvez créer un lien symbolique depuis votre package vers un répertoire du PYTHONPATH sans avoir à gérer les variables d'environnement. Quelque chose comme:
la source
L'ajout
export PYTHONPATH="${PYTHONPATH}:/my/other/path"
au ~ / .bashrc peut ne pas fonctionner s'ilPYTHONPATH
n'existe pas actuellement (à cause du:
).L'ajout de ce qui précède à mon ~ / .bashrc a fait l'affaire pour moi sur Ubuntu 16.04
la source
echo PYTHONPATH
et rien n'est apparu! cela signifie que ce PYTHONPATH n'a pas été initié, donc je colle juste cette ligneexport PYTHONPATH=$PYTHONPATH:<PATH_TO_TF>/TensorFlow/models/research/object_detection
dans mon~/.bashrc
fichier etsource ~/.bashrc
elle. Plus tard, quand j'ai fait écho à $ PYTHONPATH, cela m'a donné:<PATH_TO_TF>/TensorFlow/models/research/object_detection
, une suggestion sur si j'ai fait quelque chose de mal?export PYTHONPATH=<PATH_TO_TF>/TensorFlow/models/research/object_detection
, lorsque vous exportez PYTHONPATH pour la première fois, vous devez le faire sans la${PYTHONPATH}:
partie:<PATH_TO_TF>/TensorFlow/models/research/object_detection
-à- dire et supprime le 2eexport PYTHONPATH=$PYTHONPATH:/TensorFlow/models/research/slim
. des suggestions à ce sujet, comment y remédier?Sur MacOS, au lieu de donner le chemin vers une bibliothèque spécifique. Donner le chemin d'accès complet au dossier de projet racine dans
fait ma journée, par exemple:
après cela:
la source
Pour ajouter une réponse à awesomo, vous pouvez également ajouter cette ligne dans votre
~/.bash_profile
ou~/.profile
la source
.bash_profile
si vous utilisez un shell de connexion, sinon utilisez.profile
L'ajout d'un nouveau chemin vers PYTHONPATH se fait manuellement en:
en ajoutant le chemin d'accès à votre profil ~ / .bashrc, dans le terminal par:
collez ce qui suit dans votre profil
puis, assurez-vous de source votre profil bashrc chaque fois que vous exécutez votre code dans le terminal:
J'espère que cela t'aides.
la source
J'ai ajouté de façon permanente dans Windows Vista, Python 3.5
Système> Panneau de configuration> Paramètres système avancés> Variables d'environnement avancées (appuyez sur)> Variables système> (si vous ne voyez pas PYTHONPATH dans la colonne Variable) (cliquez) Nouveau> Nom de la variable: PYTHONPATH> Valeur de la variable:
Veuillez écrire le répertoire dans la valeur Variable. Ce sont les détails de la réponse de Blue Peppers.
la source
Le script ci-dessous fonctionne sur toutes les plates-formes car il s'agit de Python pur. Il utilise le chemin pathlib, documenté ici https://docs.python.org/3/library/pathlib.html , pour le faire fonctionner multiplateforme. Vous l'exécutez une fois, redémarrez le noyau et c'est tout. Inspiré par https://medium.com/@arnaud.bertrand/modifying-python-s-search-path-with-pth-files-2a41a4143574 .
la source
Il s'agit d'une mise à jour de ce fil qui contient d'anciennes réponses.
Pour ceux qui utilisent MAC-OS Catalina ou une version plus récente (> = 10.15), il a été introduit un nouveau terminal nommé
zsh
(un substitut à l'ancienbash
).J'ai eu quelques problèmes avec les réponses ci-dessus en raison de ce changement, et j'ai quelque peu fait une solution de contournement en créant le fichier
~/.zshrc
et en collant le répertoire de fichiers dans le$PATH
et$PYTHONPATH
Donc, j'ai d'abord fait:
Lorsque l'éditeur a ouvert, j'ai collé le contenu suivant:
enregistré et redémarré le terminal.
IMPORTANT: Le chemin ci-dessus est défini sur le chemin de mon ordinateur, vous devrez l'adapter à votre python.
la source
Dans Python 3.6.4, vous pouvez conserver sys.path sur des sessions python comme ceci:
Je vous suggère fortement d'utiliser virtualenv et virtualenvwrapper sinon vous encombrerez votre chemin
la source
Le chemin le plus court entre A <-> B est une ligne droite;
la source