Python 如何读取环境变量?
os.environ['VAR'] 直接读取(不存在抛 KeyError);os.environ.get('VAR', '默认值') 更安全;os.getenv() 等价。本文给出用法、默认值、类型转换与 .env 文件方案。
两种方式:os.environ['NAME'] 直接取(不存在会抛 KeyError);os.getenv('NAME', 'default') 带默认值更安全——推荐后者。
基本用法
import os
db_host = os.environ['DB_HOST'] # 不存在则 KeyError
db_port = os.getenv('DB_PORT', '5432') # 安全:带默认值
debug = os.getenv('DEBUG') # 不存在返回 None
常见配套操作
# 判断是否存在
if 'API_KEY' in os.environ: ...
# 类型转换(环境变量永远是字符串!)
workers = int(os.getenv('WORKERS', '4'))
debug = os.getenv('DEBUG', '').lower() in ('1', 'true', 'yes')
# 设置/删除
os.environ['MY_VAR'] = 'value'
os.environ.pop('MY_VAR', None)
.env 文件(本地开发)
pip install python-dotenv
from dotenv import load_dotenv
load_dotenv() # 把 .env 文件内容加载进环境变量
常见问题(FAQ)
Q:改了环境变量 Python 进程里看不到? 环境变量在进程启动时继承——改完要重启进程。
Q:密钥放环境变量安全吗? 比写死在代码里安全;K8s 中配合 Secret 注入更规范。