2017-07-31 69 views
1

我想向我的服务器添加一个环境变量,它需要是布尔值。我已经加入到/etc/environmentPython和env vars不工作

PROD=True 

我已经登录的用户和退出,现在我运行这个简单的脚本来检查其是否工作正常与否:

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

,但是我一个没有得到打印出来,我在这里做错了什么?我代表布尔错误吗?

+1

尝试'如果os.environ [ 'PROD'] ==“真“'你的环境可能没有bool的概念,它将True存储为一个字符串。你总是可以打印'type' – Nullman

回答

-1

所有环境变量本质上都是字符串。尝试

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

如果你真的需要“类型的环境变量”不怕上潜在的任意字符串使用eval,你可以做这样的事情

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

对任何读这个的人来说:do __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(这是inturn的字典)

>>> if 'PROD' in os.environ: 
...  print 'prod' 
... 
prod