Comment puis-je savoir quels répertoires sont répertoriés dans la variable PYTHONPATH
de mon système, à partir d'un script Python (ou du shell interactif)?Comment trouver mon chemin python en utilisant python?
Répondre
sys.path
peut inclure des éléments qui ne se trouvent pas spécifiquement dans votre variable d'environnement PYTHONPATH
. Pour interroger la variable directement, utilisez:
import os
try:
user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
except KeyError:
user_paths = []
(ou, plus génériquement ... split (os.sep)). Tu ne peux pas comprendre pourquoi tu n'obtiens pas l'amour, Mark. Votre réponse est techniquement plus précise que la propre réponse de Paul D Waite à sa question ???? – mjv
Ah, excellent. Merci les gars, je me doutais que je faisais quelque chose de mal. J'ai supprimé ma mauvaise réponse; Mark, si vous pouviez éditer votre réponse pour inclure le bit os.sep, les points seront à vous. –
os.sep est incorrect, voir http://stackoverflow.com/questions/1499019/how-to-get-the-path-separator-in-python –
Impossible de modifier l'autre réponse. A une erreur mineure en ce que c'est Windows seulement. La solution la plus générique est d'utiliser os.sep comme suit:
sys.path peut inclure des éléments qui ne sont pas spécifiquement dans votre variable d'environnement PYTHONPATH. Pour interroger la variable directement, utilisez:
import os
os.environ['PYTHONPATH'].split(os.pathsep)
Pour les futurs lecteurs: 'os.sep' renvoie le séparateur de répertoire pour le système d'exploitation , par exemple '/'. Le séparateur utilisé dans le chemin Python est différent et renvoyé par 'os.pathsep' comme indiqué dans la réponse acceptée. –
aucune raison pour le 'import sys' ici, non? – Nathan
Vous voudrez probablement aussi ceci:
import sys
print(sys.path)
Ou comme une doublure du terminal:
python -c "import sys; print('\n'.join(sys.path))"
Même. Linux aaa.com 2.6.18-4-686-bigmem # 1 SMP Wed Juin 6 09:41:07 UTC 2007 i686 GNU/Linux ... Debian Sarge – Spechal
Ceci est le moyen indépendant de la plate-forme et de l'environnement pour obtenir le courant chemin python d'exécution. –
Cette réponse était beaucoup plus utile pour ma situation que la réponse acceptée. Je sais ce que sont mes variables d'environnement. J'avais besoin de savoir où python a décidé de pointer en plus de ma variable d'environnement. – Vorticity
Je ne suis pas sûr de ce que Essayez-vous de le faire, mais si vous voulez savoir quels dossiers sont utilisés pour rechercher des modules importés, vous ne devriez pas vous fier à 'PYTHONPATH'. Utilisez 'sys.path' pour cela. – Vanuan
Par simple expérience, j'ai trouvé la réponse de Vanuan ci-dessous (impression sys.path) imprime simplement PYTHONPATH. Cela fonctionne après avoir modifié la valeur en utilisant add_path (new_path) qui ajoute à PYTHONPATH. –
Le titre de cet article et le corps posent deux questions différentes. 'sys.path' est" Une liste de chaînes qui spécifie le chemin de recherche pour les modules "- https://docs.python.org/2/library/sys.html#sys.path. PYTHONPATH est une variable d'environnement qui affecte cette liste. Par une définition raisonnable 'sys.path' est votre" chemin python ". – spinkus