python-dotenv:管理多环境配置
- 简介
- 1. 安装 python-dotenv
- 2. 创建 .env 文件
- 3. 加载环境变量
- 4. 处理默认值
- 5. 加载指定路径的 .env 文件
- 6. 使用 .env 文件进行开发和部署
- 7. 环境变量的注意事项
- 总结
简介
python-dotenv
是一个用于管理环境变量的 Python 库,它可以让你将配置项(如 API 密钥、数据库连接字符串等)存储在 .env
文件中,并在代码中加载这些变量。这种做法非常有用,尤其是在开发、测试、和生产环境中,不同环境的配置可能不同。
1. 安装 python-dotenv
安装 python-dotenv
库,通过 pip
来安装:
pip install python-dotenv
2. 创建 .env 文件
在项目的根目录下创建一个 .env
文件,用来存储环境变量。文件中的内容通常是 KEY=VALUE
的形式。例如:
# .env 文件示例
DB_CONNECTION=postgres://admin:password123@localhost:5432/mydatabase
API_KEY=abcdef1234567890
APP_MODE=production
3. 加载环境变量
在 Python 脚本中使用 dotenv
来加载 .env
文件中的环境变量。以下是一个简单的示例:
from dotenv import load_dotenv
import os# 加载 .env 文件中的环境变量
load_dotenv()# 使用环境变量
db_connection = os.getenv('DB_CONNECTION')
api_key = os.getenv('API_KEY')
app_mode = os.getenv('APP_MODE')print(f"Database Connection: {db_connection}")
print(f"API Key: {api_key}")
print(f"App Mode: {app_mode}")
load_dotenv()
:这个函数会自动加载.env
文件中的变量并将其添加到 Python 的os.environ
中;os.getenv('VARIABLE_NAME')
:通过os.getenv()
函数访问环境变量。
4. 处理默认值
你可以为环境变量设置默认值,当变量在 .env
文件中没有定义时,使用默认值:
# 如果没有在 .env 中找到 DATABASE_URL,默认使用 "sqlite:///:memory:"
database_url = os.getenv('DATABASE_URL', 'sqlite:///:memory:')
5. 加载指定路径的 .env 文件
如果 .env
文件不在默认的路径下,可以通过指定文件路径来加载:
load_dotenv(dotenv_path='/path/to/your/.env')
6. 使用 .env 文件进行开发和部署
使用 .env
文件可以避免将敏感信息(如 API 密钥、数据库密码等)硬编码到源代码中。你可以在 .gitignore
文件中忽略 .env
文件,以防止它被提交到版本控制系统。
在 .gitignore
中添加:
# 忽略 .env 文件
.env
7. 环境变量的注意事项
- 安全性:不要将包含敏感信息(如数据库密码、API 密钥等)的
.env
文件提交到代码仓库。 - 跨平台兼容性:如果你在不同的操作系统上开发,确保
.env
文件的格式在各个平台上都能正确读取。
总结
python-dotenv
是一个很好的工具,能帮助你管理项目中的配置和环境变量,特别是在涉及敏感数据时。通过 .env
文件,你可以轻松地在开发、测试、生产等不同环境之间切换配置。