Python和env vars无法正常工作

时间:2017-07-31 06:56:43

标签: python

我想在我的服务器上添加一个环境变量,它需要是一个布尔值。我已添加到/etc/environment

PROD=True

我已将用户登录进出,现在我正在运行这个简单的脚本来检查它是否有效:

import os
if os.environ['PROD'] == True:
        print "prod"
然而,我没有打印出来,我在这里做错了什么?我是不是错误地代表了布尔?

3 个答案:

答案 0 :(得分:4)

环境变量是str类型。

支持Python 2.x和3.x版本:

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

保护您免受KeyError

的攻击

在文档(doc)中:

  

表示字符串环境的映射对象。

答案 1 :(得分:0)

你需要检查os.environ中是否存在PROD环境变量(这是一个dict inturn)

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

答案 2 :(得分:-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"