Comment savoir quels répertoires sont répertoriés dans la PYTHONPATH
variable de mon système , à partir d'un script Python (ou du shell interactif)?
python
python-module
pythonpath
Paul D. Waite
la source
la source
PYTHONPATH
. Utilisezsys.path
pour cela.sys.path
est "Une liste de chaînes qui spécifie le chemin de recherche des modules" - docs.python.org/2/library/sys.html#sys.path . PYTHONPATH est une variable d'environnement qui affecte cette liste. Par toute définition raisonnablesys.path
est votre "chemin python".python -m site
.Réponses:
sys.path
peut inclure des éléments qui ne sont pas spécifiquement dans votrePYTHONPATH
variable d'environnement. Pour interroger directement la variable, utilisez:la source
sys.path
.Vous voudriez probablement aussi ceci:
Ou comme un seul paquebot depuis le terminal:
Avertissement : si plusieurs versions de Python sont installées, vous devez utiliser une commande correspondante
python2
oupython3
.la source
python -c "import sys; print('\n'.join(sys.path))"
Impossible de modifier l'autre réponse. A une erreur mineure en ce qu'il est uniquement Windows. La solution la plus générique consiste à utiliser os.sep comme ci-dessous:
sys.path peut inclure des éléments qui ne sont pas spécifiquement dans votre variable d'environnement PYTHONPATH. Pour interroger directement la variable, utilisez:
la source
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é paros.pathsep
comme indiqué dans la réponse acceptée.PYTHONPATH est une variable d'environnement dont la valeur est une liste de répertoires. Une fois défini, il est utilisé par Python pour rechercher des modules importés, ainsi que d'autres std. et les répertoires de bibliothèques tierces répertoriés dans "sys.path" de Python.
Comme toute autre variable d'environnement, vous pouvez l'exporter en shell ou en ~ / .bashrc, voir ici . Vous pouvez interroger os.environ ['PYTHONPATH'] pour sa valeur en Python comme indiqué ci-dessous:
SI défini dans le shell comme
ALORS résultat =>
ELSE résultat =>
Pour définir PYTHONPATH sur plusieurs chemins, voir ici .
Notez que l'on peut ajouter ou supprimer un chemin de recherche via sys.path.insert (), del ou remove () au moment de l'exécution, mais PAS via os.environ []. Exemple:
En résumé, PYTHONPATH est un moyen de spécifier le ou les chemins de recherche Python pour les modules importés dans sys.path. Vous pouvez également appliquer des opérations de liste directement à sys.path sans l'aide de PYTHONPATH.
la source
Python me dit où il vit quand il me donne un message d'erreur :)
la source
Utilisez ceci:
Ou une ligne du cmd:
la source