2017-07-31 11 views
1

私のサーバに環境変数を追加したいのですが、それはブール値である必要があります。私は/etc/environmentに追加しました:Pythonとenv varsが動作しない

PROD=True 

は、私は、ユーザーがログインしているし、それが動作するかどうかを、今、私はこの単純なスクリプトを実行しています。チェックする:

import os 
if os.environ['PROD'] == True: 
     print "prod" 

をしかし、私は得ていません私がここで間違っているのは何ですか?ブールを間違って表現していますか?

+1

場合はos.environ [ 'PROD'] ==「真 'てみてください"あなたの環境はおそらくブールの概念を持っていないでしょう、それはTrueを文字列として保存します。 – Nullman

答えて

-1

すべての環境変数は、本質的に文字列です。あなたが本当に「型付けされた環境変数」を必要とする、潜在的に任意の文字列にevalを使用して恐れていない場合は

import os 
if os.environ['PROD'] == 'True': 
    print "prod" 

を試してみてください、あなたは

import os 
PROD = eval(os.environ['PROD']) 
if PROD == True: # Or just "if PROD:" 
    print "prod" 
+1

これを読んでいる人には:__NOT__は環境変数__NEVER__で 'eval()'を使ってください(あなたが本当にあなたのシステムを壊すことを本当に望んでいない限り)。 –

4

環境変数のように何かをすることはstrタイプです。

サポートのPython 2.xと3.xバージョンは:

import os 
if os.getenv('PROD') == 'True': 
    print("prod") 

KeyErrorからあなたを守ります。ドキュメント(doc)において

列環境を表すマッピングオブジェクト。

0

あなたはPROD環境変数が(これにより、次に辞書がある)はos.environに存在しているかどうかを確認する必要があり

>>> if 'PROD' in os.environ: 
...  print 'prod' 
... 
prod 
関連する問題