跳转至

dotenv.pth

CNSeniorious000/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