我想向我的服务器添加一个环境变量,它需要是布尔值。我已经加入到/etc/environment
:Python和env vars不工作
PROD=True
我已经登录的用户和退出,现在我运行这个简单的脚本来检查其是否工作正常与否:
import os
if os.environ['PROD'] == True:
print "prod"
,但是我一个没有得到打印出来,我在这里做错了什么?我代表布尔错误吗?
我想向我的服务器添加一个环境变量,它需要是布尔值。我已经加入到/etc/environment
:Python和env vars不工作
PROD=True
我已经登录的用户和退出,现在我运行这个简单的脚本来检查其是否工作正常与否:
import os
if os.environ['PROD'] == True:
print "prod"
,但是我一个没有得到打印出来,我在这里做错了什么?我代表布尔错误吗?
所有环境变量本质上都是字符串。尝试
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"
对任何读这个的人来说:do __NOT__对环境变量__NEVER__使用'eval()'(除非你真的想让任何人打破你的系统)。 –
环境变量是str
类型。
支持的Python 2.x和3.x版本:
import os
if os.getenv('PROD') == 'True':
print("prod")
保护你免受KeyError
。
在文档(doc):
表示字符串环境的映射对象。
您需要检查PROD环境变量存在于os.environ(这是inturn的字典)
>>> if 'PROD' in os.environ:
... print 'prod'
...
prod
尝试'如果os.environ [ 'PROD'] ==“真“'你的环境可能没有bool的概念,它将True存储为一个字符串。你总是可以打印'type' – Nullman