使用uv管理的工具,找到了不存在的环境变量?
我在调试一个用uv管理的项目的时候,发现了一个神奇的bug:
我让这个项目打印出所有环境变量,结果发现比直接在bash中运行env输出的环境变量多了两项。
原因是这样的:
uv run(包含 uv tool run / uvx)在执行时,会调用 dotenvy 库 向上扫描 当前工作目录及其父目录,寻找并加载常见的 dotenv 文件(如 .env、.env.local、.env.development)中的键值对,并注入到子进程环境中。
参考文档
因此,即便你的项目根目录没有 .env 文件,只要上层某处存在 .env 并定义了一些环境变量,就会被自动加载,导致运行工具时多出这两个变量。

浙公网安备 33010602011771号