GNU/Linux >> Tutoriels Linux >  >> Linux

Dans le script Python, comment définir PYTHONPATH ?

Vous pouvez obtenir et définir des variables d'environnement via os.environ :

import os
user_home = os.environ["HOME"]

os.environ["PYTHONPATH"] = "..."

Mais puisque votre interpréteur est déjà en cours d'exécution, cela n'aura aucun effet. Vous feriez mieux d'utiliser

import sys
sys.path.append("...")

qui est le tableau que votre PYTHONPATH sera transformé en au démarrage de l'interpréteur.


Si vous mettez sys.path.append('dir/to/path') sans vérifier qu'il est déjà ajouté, vous pourriez générer une longue liste en sys.path . Pour cela, je recommande ceci :

import sys
import os # if you want this directory

try:
    sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
    sys.path.append('/dir/path') # Or os.getcwd() for this directory

Vous ne définissez pas PYTHONPATH , vous ajoutez des entrées à sys.path . Il s'agit d'une liste de répertoires dans lesquels rechercher des packages Python. Vous pouvez donc simplement ajouter vos répertoires à cette liste.

sys.path.append('/path/to/whatever')

En fait, sys.path est initialisé en divisant la valeur de PYTHONPATH sur le caractère séparateur de chemin (: sur les systèmes de type Linux, ; sous Windows).

Vous pouvez également ajouter des répertoires en utilisant site.addsitedir , et cette méthode prendra également en compte .pth fichiers existant dans les répertoires que vous passez. (Ce ne serait pas le cas avec les répertoires que vous spécifiez dans PYTHONPATH .)


PYTHONPATH se retrouve dans sys.path, que vous pouvez modifier au moment de l'exécution.

import sys
sys.path += ["whatever"]

Linux
  1. comment trouver le propriétaire d'un fichier ou d'un répertoire en python

  2. Comment puis-je définir le 'backend' dans matplotlib en Python?

  3. Appelez le script Python à partir de bash avec un argument

  4. Comment obtenir le PYTHONPATH en shell?

  5. Comment exécuter un script Python à partir de Java ?

Comment exécuter un script Python en PHP

Comment configurer l'exécution automatique d'un script Python à l'aide de Systemd

Comment exécuter des scripts Python à partir du shell

Comment utiliser les ensembles en Python

Comment modifier globalement le PYTHONPATH par défaut (sys.path) ?

Comment définir le chemin pour les commandes sudo