如何在Python中获取环境变量的值?
当前回答
检查密钥是否存在(返回True或False)
'HOME' in os.environ
您也可以在打印密钥时使用get();如果要使用默认值,则非常有用。
print(os.environ.get('HOME', '/home/username/'))
其中/home/username/是默认值
其他回答
如果您计划在生产web应用程序代码中使用该代码,使用Django和Flask等任何web框架,请使用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)
注意:kennetritz的autoenv是制作项目特定环境变量的推荐工具。对于使用autoenv的用户,请注意将.env文件保持为私有(公共无法访问)。
以下是如何检查是否设置了$FOO:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
您可以使用python dotenv模块访问环境变量
使用以下方法安装模块:
pip install python-dotenv
然后将模块导入Python文件
import os
from dotenv import load_dotenv
# Load the environment variables
load_dotenv()
# Access the environment variable
print(os.getenv("BASE_URL"))
您可以使用
import os
print os.environ
尝试查看PYTHONPATH或PYTHONHOME环境变量的内容。也许这会对你的第二个问题有所帮助。
在一行中使用嵌套for循环的棘手之处在于必须使用列表理解。因此,为了打印所有环境变量,而不必导入外部库,您可以使用:
python -c "import os;L=[f'{k}={v}' for k,v in os.environ.items()]; print('\n'.join(L))"
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录