Linux で環境変数が none を返すのはなぜですか?

Linux で環境変数が none を返すのはなぜですか?

Windows で新しい変数 = 値を設定するには、それを環境変数に追加するだけです。ただし、Linux では少し難しいようです。私が実行した手順は次のとおりです。

ターミナルを開いて次のように入力します:

vim ~/.bashrc  

次にキーボードの「i」を押して、次のように変数を定義します。

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin

それから:wq

$echo の後に次の変数が表示されます:

echo $Test_MyVariable 

そして、次の結果が返されます:

テススト

しかし、私の崇高なテキストでは None が返されます。

import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)

なし

利用可能な os.environ をすべて確認しましたが、 が見つかりませんTest_MyVariable。さらに、 と を試し~/.bash_profile~/.profile変数を追加しましたが、結果は同じでした。何が間違っているのか教えていただけますか?

答え1

で変数を定義すると~/.bashrc、その変数は「ソース化」(読み取り)されるとすぐに表示されます~/.bashrc。これは、新しいシェルを起動したとき(新しいターミナルを開いたときなど)にのみ発生します。

したがって、ファイルに新しい行を追加した場合は.bashrc、新しいターミナルを開いて、そこで Python スクリプトを実行する必要があります。または、 を実行して、source ~/.bashrc現在のシェルにソースとして読み込むこともできます。

さて、あなたは Sublime について言及していますが、それがなぜ関連するのかをあまり説明していないので、何らかの方法で Sublime エディター内で Python スクリプトを実行していると仮定します。おそらく、何らかのシェル エミュレーターがあるのでしょう。その場合、変数を定義する方法と場所の詳細は、Sublime がシェルをどのように設定するかによって異なります。以下を試してください。

  1. Sublime ウィンドウを閉じて再度開き、 が再読み込みされたかどうかを確認します.bashrc

  2. Sublime はまったく読み取れない可能性があります.bashrc。GUI ボタン​​から Sublime を実行している場合は、変数を再度読み取る前に、ログアウトして再度ログインする必要がある可能性があります。

  3. 新しいターミナルを開いて実行してみてくださいsublime(または、コマンド ラインから Sublime を起動するためのコマンド名)。すると変数が表示されますか?

関連情報