从Python访问环境variables
我设置了一个我想在我的Python应用程序中访问的环境variables。 我如何得到这个价值?
环境variables可以通过os.environ访问
import os print os.environ['HOME']
或者,您可以使用以下方式查看所有环境variables的列表:
os.environ
有时您可能需要查看完整的列表!
# using get will return `None` if a key is not present rather than raise a `KeyError` print os.environ.get('KEY_THAT_MIGHT_EXIST') # os.getenv is equivalent, and can also give a default value instead of `None` print os.getenv('KEY_THAT_MIGHT_EXIST', default_value)
Windows上的Python默认安装是C:\Python
。 如果你想在运行python的时候发现,你可以这样做:
import sys print sys.prefix
检查密钥是否存在(返回True
/ False
)
"HOME" in os.environ
或(从Python 3.x中删除)
os.environ.has_key("HOME")
打印密钥时也可以使用get()
。 如果你想使用默认值,这是有用的。 (对于Python 2.7.3)
print os.environ.get('HOME','/home/username/')
/home/username/
是默认的
原来的问题(第一部分)是“如何在Python中检查环境variables”。
以下是如何检查$ FOO是否已设置:
try: os.environ["FOO"] except KeyError: print "Please set the environment variable FOO" sys.exit(1)
您可以使用访问环境variables
import os print os.environ
尝试看看PYTHONPATH或PYTHONHOME环境variables的内容,也许这将有助于你的第二个问题。 不过你应该澄清一下。
至于环境variables:
import os print os.environ["HOME"]
恐怕在得到一个体面的答案之前,你必须充实一点。
import os for a in os.environ: print('Var: ', a, 'Value: ', os.getenv(a)) print("all done")
这将打印所有的环境variables及其值。
如果您打算在生产Web应用程序代码中使用该代码,
使用Django / Flask等任何Web框架,使用像envparse这样的项目,使用它你可以读取你定义的types的值。
from envparse import env # will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"] white_list = env.list("WHITE_LIST", default=[]) # Perfect for reading boolean DEBUG = env.bool("DEBUG", default=False)
注意:kennethreitz的autoenv是build立项目特定环境variables的推荐工具