2017-11-23 7 views
0

私はPythonスクリプトを作成しています。このスクリプトを実行する前に存在しない環境変数にこのスクリプトで値を書きたいとします。私が走っているOSはUbuntuです。理想的には、スクリプトを実行した後、端末上でechoコマンドを使用して環境変数を表示できるはずです。それによって私は、端末の動作は以下のようなあるべき意味:Pythonで環境変数を作成しても動作しないようです

> echo $NEW_VAR 
environmentvarvalue 

私は同様に異なるPythonスクリプトにこの環境変数にアクセスできるようにしたいです。したがって、次のコード:最初のスクリプトを実行した後に実行したときに実行された場合に

import os 
output = "The value of NEW_VAR is " + os.environ.get('NEW_VAR') 
print output 

は、次のような出力を生成する必要があります

The value of NEW_VAR is environmentvarvalue 

を私は研究のビットの後、私の最初のスクリプトに次のコードを試してみました

import os 
os.environ['NEW_VAR'] = 'environmentvarvalue' 

が、私は目の実行後に端末上でechoコマンドを実行すると、環境変数は初期のみSCRPTの範囲のために保存、および取得します。このことについてeスクリプトの場合は、変数が存在しない場合と同じ動作になります。私のコードに何か問題がありますか?または、Pythonを介して環境変数を割り当てるより良い方法がありますか?私はおそらくサブプロセスのpythonモジュールからexportコマンドを実行することができますが、これはこの問題を解決する正しい方法のようには見えません。

+0

これはpythonセッションのためのもので、Pythonで設定するときに永続的に設定したい場合は、https://stackoverflow.com/questions/17657686/is-it-possible-toが必要です。 -set-an-environment-variable-from-python-permanently – user1767754

+0

.bashrcファイルに書き込まずに実行する方法はありませんか?確かにPythonはこれをよりきれいな方法で行うことができるモジュールを持っていなければなりません。 –

+0

あなたは環境変数を永久的に設定する理由を伝えませんでした。 – user1767754

答えて

0

環境変数を使用してこれを行うことはできません。スクリプトが終了すると、あなたの環境は破壊されます。親プロセス(あなたのシェル)は変数を決して見ません。

別のアプローチが必要です。ファイルやデータベースに書き込んでいる可能性があります。

関連する問題