Réponses:
Vous ne définissez pas PYTHONPATH
, vous ajoutez des entrées sys.path
. C'est une liste de répertoires dans lesquels rechercher les 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 à l'aide de site.addsitedir
, et cette méthode prendra également en compte les .pth
fichiers existant dans les répertoires que vous passez. (Ce ne serait pas le cas avec les répertoires que vous spécifiez 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 dans lequel vous PYTHONPATH
serez transformé au démarrage de l'interpréteur.
Si vous mettez sys.path.append('dir/to/path')
sans cocher il est déjà ajouté, vous pourriez générer une longue liste au format 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 pouvez définir PYTHONPATH
, par os.environ['PATHPYTHON']=/some/path
, puis vous devez appeler os.system('python')
pour redémarrer le shell python pour rendre le chemin nouvellement ajouté efficace.
os.system()
ne "redémarre pas le shell python", il démarre une nouvelle instance Python interactive. Lorsque vous revenez de cela, vous êtes de retour dans le script d'appel.
sys.path.insert(0, '/path/to/whatever')
.