2016-11-21 24 views
-1

カスタム環境変数に応答するコードを取得できないように見えるので、テストするコードを書きました。 getenvは私がBASHで設定した環境変数を私のPythonコードに引っ張っていません。あなたが提供できるいかなる助力も非常に高く評価されます。os.getenv()が返され続けるなし

$ FRUSTRATION="PYTHON!!" 
$ echo FRUSTRATION 
PYTHON!! 
export FRUSTRATION 
ipython 
import os 
very_frustrated = os.getenv("FRUSTRATION") 
print(very_frustrated) 
None 
+3

これは実行したコードではありません。先頭の '$ 'のない' echo FRUSTRATION'は変数の内容ではなく 'FRUSTRATION'を繰り返します。あなたが 'ipython'を起動したシェルでは、実際には' export FRUSTRATION'を実行しませんでした。 – ShadowRanger

+0

これは再作成できません。あなたは同じシェルから 'ipython'を起動していますか? –

+0

どのオペレーティングシステム/シェルですか?それは私が知っているLinuxシェルのようには見えません。 – tdelaney

答えて

1

作品:

:: export FOO=boo 
:: python 
Python 2.7.10 (default, Jul 30 2016, 18:31:42) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import os 
>>> os.getenv('FOO') 
'boo' 
>>> 

私の推測では、あなたは、変数をエクスポートするのを忘れたか、あなたは変数間違って綴られていることです。

0
print os.environ 

あなたは環境varはあなたのシステムかどうかに追加したかどうかを確認するためにこれを行います。 あなたのpythonコードは問題ありません。 env varを設定するのは問題です。私にとって

+0

'os.getenv'を呼び出すよりも、これがどのように優れているかわかりません。変数の設定に問題がある場合、この変更は役に立ちません。 – tdelaney

+0

@tdelaneyあなたが見ることができる変数を表示し、あなたが探している変数を潜在的に見ることができます - 名前が間違っているか、その性質のものかもしれないことを除いて。私はそれが貴重なデバッグステップだと思いますが、それは本当の答えにはなりません。 – jszakmeister

関連する問題