Je sais comment le définir dans mon / etc / profile et dans mes variables d'environnement.
Mais que faire si je veux le définir pendant un script? S'agit-il d'import os, sys? Comment fait-on ça?
Je sais comment le définir dans mon / etc / profile et dans mes variables d'environnement.
Mais que faire si je veux le définir pendant un script? S'agit-il d'import os, sys? Comment fait-on ça?
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
.)
sys.path.insert(0, '/path/to/whatever')
.Vous pouvez obtenir et définir des variables d'environnement via
os.environ
:Mais puisque votre interpréteur est déjà en cours d'exécution, cela n'aura aucun effet. Vous feriez mieux d'utiliser
qui est le tableau dans lequel vous
PYTHONPATH
serez transformé au démarrage de l'interpréteur.la source
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 formatsys.path
. Pour cela, je recommande ceci:la source
PYTHONPATH se termine dans sys.path , que vous pouvez modifier au moment de l'exécution.
la source
vous pouvez définir
PYTHONPATH
, paros.environ['PATHPYTHON']=/some/path
, puis vous devez appeleros.system('python')
pour redémarrer le shell python pour rendre le chemin nouvellement ajouté efficace.la source
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.Je Linux cela fonctionne aussi:
la source