从Python访问环境variables

我设置了一个我想在我的Python应用程序中访问的环境variables。 我如何得到这个价值?

7 Solutions collect form web for “从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的推荐工具

  • PHP中全局variables和函数参数之间的优缺点?
  • 在Node.js文件之间共享variables?
  • 每个伊娃都必须是一个财产?
  • 如何改变node.js中process.env.PORT的值?
  • 如何在Xcode项目中打印“构build设置”列表?
  • 尽pipe使用了CLASSPATH环境variables,java.lang.ClassNotFoundException也是如此
  • 链接到所有Visual Studio $variables
  • 命令行从OS级configuration中删除环境variables
  • 将程序的输出分配给一个variables
  • 环境variables来控制java.io.tmpdir?
  • goto Label后的variables声明