Python os.environ
对象 和 os.getenv()
方法
os.environ
在 Python 中 os.environ
是一个用户环境变量的映射对象(mapping object)。它返回的是一个 Python 字典(dictionary) ,其中用户的环境变量作为键(key),其值作为值(value)。由于 os.environ
是一个Python字典,所以可以执行字典的 get
和 set
注意,虽然可以修改 os.environ
,但是 任何 os.environ 修改只在当前进程有效,而不会持久化生效
获取环境变量的代码片段案例:
打印输出操作系统 所有 环境变量
# Python program to explain os.environ object
# importing os module
import os
import pprint
# Get the list of user's
# environment variables
env_var = os.environ
# Print the list of user's
# environment variables
print("User's Environment variable:")
pprint.pprint(dict(env_var), width = 1)
环境变量获取空 null
问题
我在实践 PyODPS快速起步 遇到一个小白问题,运行 odps
测试程序报,调试发现并没有获得指定环境变量,原因就是在使用 os.environ
或者 os.getenv()
,一定要明确配置 export
指定环境变量,否则即使登陆 Bash 看上去环境变量生效,实际 Python程序运行还是拿不到环境变量:
ODPS相关环境变量设置
ALIBABA_CLOUD_ACCESS_KEY_ID="my_id"
ALIBABA_CLOUD_ACCESS_KEY_SECRET="my_secret"
# 必须明确 export 环境变量,否则Python os模块的 getenv() 或 environ 无法获得
export ALIBABA_CLOUD_ACCESS_KEY_ID ALIBABA_CLOUD_ACCESS_KEY_SECRET
原因说来很简单,一定要确保 ~/.bash_profile
中输出的环境变量使用了 export
指令明确输出,否则 os.environ
对象 或者 os.getenv()
方法返回的就是空值