web-dev-qa-db-ja.com

PythonでLinux環境変数を変更するにはどうすればよいですか?

コマンドラインで環境変数を宣言しているとしましょう:

export x=100

pythonに移動して次のように入力すると:

os.environ['x'] = '100000'

コマンドラインに戻った場合x100のままです。 pythonでこの変数を変更する方法はありますか?

3
Mero

子プロセスから環境変数を変更する方法はありません。 SO にもまったく同じ質問があります。

6
falconer

あなたが達成したいものへの回避策があります。 bashをシェルとして使用すると仮定すると、bash初期化ファイルに変更を書き込むことができます(~/.bashrcを選択しました)。

#!/usr/bin/python
import os
os.system('bash -c \'echo "export a=100000" >> ~/.bashrc\'')
os.system('bash -c \'source ~/.bashrc\'')

pythonはデフォルトのシェルとしてshを使用するため、bash -cを追加する必要があります。


SOに関する同様の質問 (1つとは異なる falconer 投稿)から派生したアイデア。

1
jobin