dotenv.pth¶
让 Python 启动时自动加载 .env 文件。安装后无需手动调用 dotenv.load_dotenv()。
我曾经写过一篇关于
.pth文件的文章:blog / / /
Tip
解决开发环境变量加载的痛点。pip install 不用任何代码修改,每次 python 启动都自动加载 .env。
功能¶
- 自动加载 .env 到
os.environ,默认 override 现有变量(如有重复) - 遵循
PYTHON_DOTENV_DISABLED环境变量,控制跳过加载
实现¶
一个 .pth 文件在 Python 启动时运行(通过 site-packages 的导入机制),load_dotenv_.pth 单行表达式会在解释器启动时导入并调用 _load_dotenv.py,后者使用只有 2 行:
from dotenv import load_dotenv
load_dotenv(override=True)
将 .env 填入 os.environ。实现还支持通过 PYTHON_DOTENV_DISABLED 环境变量跳过加载逻辑,方便在生产环境选择不自动注入环境变量。
源码¶
这个项目巧妙利用了 Python 的 .pth 文件机制,在解释器启动早期自动加载环境变量,避免了手动调用 load_dotenv 的繁琐。通过单行条件导入和 override=True,确保开发便利而生产安全。
我另一个也用到 .pth 的一个项目是 hmr-daemon