次のコード行は、environment variable was not found
Azureで実行されているRHEL8仮想マシンでエラーを発生させます。
sourceKeys = os.environ.get("MY_ENV_VAR")
ただし、仮想マシンにパテを入れると、次のように変数にアクセスできます。
$ echo $MY_ENV_VAR
/path/to/some.yaml
この変数は、次のコードを使用して起動スクリプトのパッケージャによって設定されます。
export MY_ENV_VAR='/path/to/some.yaml'
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/environment
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/bashrc
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/profile
Linuxターミナルは環境変数を読み取ることができますが、Pythonは読めないのはなぜですか?
Pythonプログラムが環境変数の値を読み取るにはどのような変更が必要ですか?
答え1
os.environ.get()
環境変数(env-var)の値のみが検索され、検索プロセスでアクセス可能です。プロセスがデーモン(から始まるプロセスのようにsystemd
)またはエクスポートする実行スペースに依存しない場合、$ echo $MY_ENV_VAR
結果は予想と異なる場合があります。
つまり、グローバルに使用できるように変数をエクスポートするには、その環境変数の値を照会/検索するために使用されるプロセスを生成するシェルから変数をエクスポートする必要があります。
いくつかの答えはstackoverflow.comと他の場所で見つけることができます。ここ。