web-dev-qa-db-ja.com

os.environが環境変数を設定しない

Pythonを使用してWindows環境変数を設定しようとしています。

ドキュメントとは逆に、 os.environ は環境変数を取得できますが、設定できないようです。これらをWindowsコマンドプロンプトで実行してみてください。

これは機能します:

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

これはしません:

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

コマンドプロンプトでsetと入力してみてください。環境変数FOOが存在しません。

Pythonから永続的なWindows環境変数を設定するにはどうすればよいですか?

9
blokeley

os.environ[...] = ...は、pythonプロセス(またはその子プロセス))の間のみ環境変数を設定します。

Pythonを実行するシェルの変数を設定することは簡単ではなく(つまり、OS固有のツールを使用しない場合)、不可能です。問題に対する別のややあいまいなアプローチについては、aumoのコメントを参照してください。

18
honza_p