问:
如何在 Python 中获取环境变量的值?
答1:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
通过 os.environ 访问环境变量:
import os
print(os.environ['HOME'])
要查看所有环境变量的列表:
print(os.environ)
如果密钥不存在,则尝试访问它会引发 KeyError。为了避免这种情况:
# Returns `None` if key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# Returns `default_value` if key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))
# Returns `default_value` if key doesn't exist
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))
您好棒,感谢您对“默认安装”的有效回复;从有效的角度快速理解它而不是通过链接。我真的很感激 :) 但是关于我的 (1) 问题,请查看下面的命令和输出片段: >>> import os >>> print os.environ['PYTHONPATH'] Traceback (last recent call last): File " ”,第 1 行,在 文件“C:\Python25\lib\os.py”中,第 435 行,在 getitem return self.data[key.upper()] KeyError: 'PYTHONPATH' >>> print os.environ.get('PYTHONPATH') 无 >>> // PLZ 继续...//
第一种方式脚本抛出异常,而第二种方式给出无。那么,有没有办法让它有意义的价值,还是我做错了???阿米特。
os.environ 是一本字典。尝试访问字典中不存在的键将引发 KeyError。当键不存在时,get 方法简单地返回 None。你有 PYTHONPATH 设置吗?您可以尝试使用保证存在的变量(例如 PATH)吗?它是否返回有意义的值?
PYTHONPATH 用于从 Python 外部向 Python (sys.path) 添加新的搜索路径。看看docs.python.org/using/cmdline.html#environment-variables
.get() 也可以被赋予默认值。
答2:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
检查密钥是否存在(返回 True 或 False)
'HOME' in os.environ
打印密钥时也可以使用get();如果您想使用默认值,这很有用。
print(os.environ.get('HOME', '/home/username/'))
其中 /home/username/ 是默认值
"HOME" in os.environ 或 os.environ.get('HOME') 哪个更好?
@endolith 他们做不同的事情。第一个返回 True 或 False,而第二个返回一个值,可能是 None。
@endolith,正确的问题是 "HOME" in os.environ vs os.environ.get('HOME') is None。正如您首先看到的那样更具可读性和舒适的工作。
答3:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
以下是检查是否设置了 $FOO 的方法:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
尝试可以更快。环境变量的情况可能最适合“尝试”:stackoverflow.com/a/1835844/187769
@RandomInsano 更快 =/= 更好。此代码看起来不如 "if 'FOO' not in os.environ: ..." 块可读
如果您只是设置变量,则需要先关闭终端,然后才能对其进行测试。
答4:
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
其实可以这样实现:
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'
不,这个答案确实没有在现有答案之上添加任何内容
这应该被删除,它是其他答案的重复。 str.format 只是一个花哨的补充。
>>> import os, pprint; pprint.pprint(list(os.environ.items()))
第一个答案是整个环境的可读输出,谢谢。为了在 PyCharm 调试器中查看环境,我评估 {k: v for k,v in sorted(os.environ.items())}
它添加了如何设置值
答5:
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
您可以使用访问环境变量
import os
print os.environ
尝试查看 PYTHONPATH 或 PYTHONHOME 环境变量的内容。也许这对您的第二个问题有帮助。
答6:
一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会
至于环境变量:
import os
print os.environ["HOME"]
答7:
一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
这将打印所有环境变量及其值。
答8:
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
导入 os 模块:
import os
获取环境变量:
os.environ.get('Env_var')
设置环境变量:
# Set environment variables
os.environ['Env_var'] = 'Some Value'
答9:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
如果您计划在生产网络应用程序代码中使用代码,使用任何网络框架(如 Django 和 Flask),请使用项目(如 envparse)。使用它,您可以将值读取为您定义的类型。
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 是用于制作项目特定环境变量的推荐工具。对于使用 autoenv 的用户,请注意将 .env 文件保密(公众无法访问)。
envparse 被大约 4,000 人使用,自 2015 年以来一直没有维护,而 dotenv 被 240,000 人使用。人家说了算。
答10:
打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!
还有很多很棒的图书馆。例如,Envs 将允许您从 rad 环境变量中解析对象。例如:
from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']
“这是rad”中的“rad”是什么意思? rad - “1.(俚语)部首剪裁;优秀”
答11:
一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会
你也可以试试这个:
首先,安装 python-decouple
pip install python-decouple
将其导入您的文件中
from decouple import config
然后获取环境变量
SECRET_KEY=config('SECRET_KEY')
详细了解 Python 库 here。
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。