如何访问环境变量值?

我设置了一个环境变量,我想在我的 Python 应用程序中访问它。 我怎样才能得到这个值呢?

解决办法

环境变量是通过os.environ访问的。

import os
print(os.environ['HOME'])

或者你可以通过以下方式看到所有环境变量的列表。

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)
评论(10)

检查钥匙是否存在(返回TrueFalse)

'HOME' in os.environ

你也可以在打印密钥时使用get()。 如果你想使用一个默认值,那就很有用。

print(os.environ.get('HOME', '/home/username/'))

其中/home/username/是默认的。

评论(3)

最初的问题(第一部分)是"如何在Python中检查环境变量.&quot。

这里'是如何检查$FOO是否被设置。

try:  
   os.environ["FOO"]
except KeyError: 
   print "Please set the environment variable FOO"
   sys.exit(1)
评论(4)

你可以用以下方法访问环境变量

import os
print os.environ

试着看看PYTHONPATH或PYTHONHOME环境变量的内容,也许这对你的第二个问题会有帮助。不过你应该澄清一下。

评论(0)

至于环境变量。

import os
print os.environ["HOME"]

恐怕你还得再充实一下你的第二点,才可能有一个像样的答案。

评论(0)
import os
for a in os.environ:
    print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")

这将打印所有的环境变量和它们的值。

评论(0)

其实可以做到这一点了。

import os

for item, value in os.environ.items():
    print('{}: {}'.format(item, value))

或者干脆。

for i, j in os.environ.items():
    print(i, j)

查看参数中的数值。

print(os.environ['HOME'])

或。

print(os.environ.get('HOME')

要设置该值。

os.environ['HOME'] = '/new/value'
评论(4)

如果你打算在生产的Web应用程序代码中使用该代码。 使用任何一个像Django/Flask这样的web框架,使用像[envparse][1]这样的项目,使用它你可以读取你定义的类型的值。

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][2]是一个推荐的工具,用于制作项目特定的环境变量,请注意,使用 "autoenv "的人请保持.env文件的私密性(不能公开)。

[1]: https://github.com/rconradharris/envparse [2]: https://github.com/kennethreitz/autoenv

评论(0)

还有一些很好的库,比如[Envs][1]可以让你从环境变量中解析出对象,这很不错。 比如[Envs][1]就可以让你从环境变量中解析出对象,这是非常棒的。 例如:

from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']

}

from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']

[1]: https://pypi.org/project/envs/

评论(0)