web-dev-qa-db-fra.com

os.environ ne définit pas de variables d'environnement

J'essaie de définir une variable d'environnement Windows à l'aide de Python.

Il semble que, contrairement aux documents, os.environ peut obtenir des variables d'environnement mais ne peut pas les définir. Essayez de les exécuter dans une invite de commandes Windows:

Cela marche:

python -c "import os; print(os.environ['PATH'])"

Cela ne signifie pas:

python -c "import os; os.environ['FOO'] = 'BAR'"

Essayez de taper set dans l'invite de commande. La variable d'environnement FOO n'existe pas.

Comment puis-je définir une variable d'environnement Windows permanente à partir de Python?

9
blokeley

os.environ[...] = ... définit la variable d'environnement uniquement pour la durée du processus python (ou ses processus enfants).

Il n'est pas facile (c'est-à-dire sans utiliser d'outils spécifiques au système d'exploitation) possible et sûrement pas recommandé de définir la variable pour le shell à partir duquel vous exécutez Python. Voir le commentaire d'Aumo pour des approches alternatives et quelque peu obscures du problème.

18
honza_p