コマンドラインで環境変数を宣言しているとしましょう:
export x=100
pythonに移動して次のように入力すると:
os.environ['x'] = '100000'
コマンドラインに戻った場合x
は100
のままです。 pythonでこの変数を変更する方法はありますか?
子プロセスから環境変数を変更する方法はありません。 SO にもまったく同じ質問があります。
あなたが達成したいものへの回避策があります。 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 投稿)から派生したアイデア。