Skip to content

python-dotenv 环境变量配置

python-dotenv 是一个用于在 Python 项目中加载和管理环境变量的工具。通过将配置信息存储在 .env 文件中,可以简化敏感信息和配置的管理,提升代码的安全性和可维护性。

⚾ 安装

sh
pip install python-dotenv

⚾ 创建 .env 文件

.env
# .env 文件示例
DEBUG=True
SECRET_KEY=mysecretkey123
DATABASE_URL=postgres://user:password@localhost:5432/mydb
  • 注释用 #
  • 每行格式:KEY=VALUE
  • 带空格或特殊字符的值可用引号 "value"

⚾ 加载环境变量

使用 load_dotenv() 默认 加载 .env 文件

python
from dotenv import load_dotenv
import os

load_dotenv()
debug = os.getenv("DEBUG")
secret_key = os.getenv("SECRET_KEY")

指定 .env 文件路径

python
from dotenv import load_dotenv
from pathlib import Path
import os

env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
database_url = os.getenv("DATABASE_URL")

读取为字典(不写入系统环境变量)

python
from dotenv import dotenv_values

config = dotenv_values(".env")
print(config['DEBUG'])

覆盖已有环境变量

如果环境变量已经在系统中存在,load_dotenv 默认不会覆盖它。 这时可以通过 override=True 来强制覆盖:

load_doten(override=True)

类型转换

DEBUG = os.getenv("DEBUG") == "True"

PORT = int(os.getenv("PORT", 8000)) # 默认值 8000

  • 不要将 .env 上传到版本控制(加入 .gitignore)。
  • 提供 .env.example 示例文件,列出所需的变量名称,但不包含实际值。
  • 可以为不同环境创建不同 .env 文件:.env.dev / .env.prod。

最后更新于: