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

如何使用python-dotenv实现多环境配置(命令行传参)

多环境配置实现方案及架构建议

核心结论

建议把环境加载逻辑抽成单独的配置文件,既可以让业务代码更简洁,也方便后续维护和复用。


具体实现步骤

1. 目录结构规划

先梳理项目目录,把各环境的配置文件集中存放:

project/
├── config/
│   ├── .env.qa
│   ├── .env.staging
│   └── .env.prod
├── config.py  # 单独的环境配置加载文件
└── Test.py    # 业务脚本

2. 编写独立配置文件 config.py

这里用argparse处理命令行传入的环境参数,自动加载对应环境变量:

# config.py
import os
import argparse
from dotenv import load_dotenv
from pathlib import Path

def load_config():
    # 解析命令行的环境参数
    parser = argparse.ArgumentParser()
    parser.add_argument('--env', required=True, choices=['qa', 'staging', 'prod'], 
                        help='指定运行环境: qa/staging/prod')
    args = parser.parse_args()

    # 构建对应环境的配置文件路径
    dotenv_path = Path(f'config/.env.{args.env}')
    # 加载环境变量(override=True确保优先加载指定环境的配置)
    load_dotenv(dotenv_path=dotenv_path, override=True)

    # 封装需要的配置项,方便业务代码调用
    return {
        'HOST': os.getenv('HOST')
        # 可根据需求添加其他环境变量
    }

3. 调整业务脚本 Test.py

直接调用配置文件的逻辑,不用关心环境加载细节:

# Test.py
from config import load_config

config = load_config()
print(config['HOST'])

4. 各环境配置文件示例

  • .env.qa:
HOST="https://qa.example.com"
  • .env.staging:
HOST="https://staging.example.com"
  • .env.prod:
HOST="https://www.example.com"

5. 运行方式

在命令行传入环境参数即可启动:

python Test.py --env qa

为什么要单独抽配置文件?

  • 代码解耦:业务脚本不用关心环境变量如何加载,只专注自身业务逻辑
  • 复用性强:如果有多个脚本需要加载环境变量,直接引入config.py即可,不用重复写加载逻辑
  • 维护便捷:后续新增环境、调整配置路径等,只需要修改config.py,不用改动所有业务脚本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:27:13