You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动.env至src目录后变量获取失败,如何修改其路径(无需decouple)

解决.env文件路径调整后无法读取环境变量的问题

假设你是用python-dotenv加载环境变量的,直接在main.py里指定.env文件的绝对路径即可,具体代码如下:

import os
from dotenv import load_dotenv

# 获取当前main.py所在的目录路径
current_script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到.env文件的完整路径
env_file_path = os.path.join(current_script_dir, '.env')
# 加载指定路径的.env文件
load_dotenv(dotenv_path=env_file_path)

# 之后正常获取环境变量即可
target_var = os.getenv('YOUR_VAR_NAME')

如果不想依赖python-dotenv,也可以手动读取.env文件并设置环境变量:

import os

current_script_dir = os.path.dirname(os.path.abspath(__file__))
env_file_path = os.path.join(current_script_dir, '.env')

with open(env_file_path, 'r', encoding='utf-8') as env_file:
    for line in env_file:
        # 跳过空行和注释行
        stripped_line = line.strip()
        if not stripped_line or stripped_line.startswith('#'):
            continue
        # 拆分键值对(兼容值中包含等号的情况)
        key, *value_parts = stripped_line.split('=')
        value = '='.join(value_parts)
        os.environ[key.strip()] = value.strip()

# 验证环境变量
target_var = os.getenv('YOUR_VAR_NAME')

原理说明:默认情况下,加载.env的逻辑会从当前工作目录查找文件。如果你是从项目根目录运行python src/main.py,工作目录是根目录,自然找不到src子目录里的.env。通过__file__获取脚本自身的绝对路径,再拼接.env的相对路径,就能精准定位到目标文件。

内容的提问来源于stack exchange,提问作者lwqx6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:06:02