Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和env变量不工作_Python - Fatal编程技术网

Python和env变量不工作

Python和env变量不工作,python,Python,我想向我的服务器添加一个环境变量,它需要是一个布尔值。我已添加到/etc/environment: PROD=True 我已经让用户登录和注销,现在我运行这个简单的脚本来检查它是否有效: import os if os.environ['PROD'] == True: print "prod" 但是我没有打印出来,我做错了什么?我是否表示布尔值不正确?所有环境变量本质上都是字符串。试一试 import os if os.environ['PROD'] == 'True':

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

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"

环境变量是
str
类型

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

import os
if os.getenv('PROD') == 'True':
    print("prod")
保护您免受
keyrerror

在文档()中:

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


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


尝试
如果os.environ['PROD']=“True”
您的环境可能没有bool的概念,它将True存储为字符串。您可以随时将
类型
打印给阅读此内容的任何人:不要对环境变量使用
eval()
,永远不要(当然,除非您真的想让任何人破坏您的系统)。
>>> if 'PROD' in os.environ:
...     print 'prod'
...
prod