Python 実行プロセスの環境を変更しようとしています。それを行う正しい方法は、os.environ と対話することであるようです。ただし、次のアサーションは失敗します。
import os, subprocess
os.environ['ATESTVARIABLE'] = 'value'
value = subprocess.check_output(['echo', '$ATESTVARIABLE'], shell=True)
assert 'value' in value
現在の環境を変えるために他にすべきことはありますか?上記のコードによって明らかになった私の Python の理解の欠陥は何ですか :)?
(現在の Python インタープリター内には、期待される値が含まれていることに注意してください。特定の環境変数を必要とし、外部プロセスを起動する可能性のあるコードを実行するように設定しています。明らかに、特定のサブプロセスos.environ['ATESTVARIABLE']
の環境を制御したい場合は、 env キーワードを使用します。)