目 录CONTENT

文章目录

python-dotenv 环境变量管理

PySuper
2025-04-14 / 0 评论 / 0 点赞 / 4 阅读 / 0 字
温馨提示:
本文最后更新于2025-06-03,若内容或图片失效,请留言反馈。 所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

在开发Python应用程序时,你是否曾因硬编码敏感信息(如API密钥、数据库密码)而感到不安?或者在不同环境(开发、测试、生产)之间切换时,频繁修改配置而头疼?

Python dotenv 正是解决这些问题的神器!它让你能够将敏感配置从代码中分离,安全、灵活地管理环境变量。本文将带你快速上手 python-dotenv,并展示它如何提升你的开发效率。 

python-dotenv

python-dotenv 是一个轻量级的Python库,允许你从 .env 文件加载环境变量,而无需手动设置系统环境变量。它的灵感来源于Ruby的 dotenv,非常适合在开发阶段管理配置。

为什么需要它?

  • 安全性:避免敏感信息(如API密钥)直接暴露在代码中。

  • 灵活性:不同环境(开发、生产)可以使用不同的 .env 文件。

  • 便捷性:无需每次运行程序前手动设置环境变量。


安装与基本使用

安装

pip install python-dotenv

创建 .env 文件

在项目根目录下创建 .env 文件,并写入环境变量:

# .env 文件示例API_KEY=your_api_key_hereDATABASE_URL=postgres://user:password@localhost/dbnameDEBUG=True

在Python中加载环境变量

from dotenv import load_dotenvimport os
# 加载 .env 文件load_dotenv()  
# 获取环境变量api_key = os.getenv("API_KEY")db_url = os.getenv("DATABASE_URL")debug_mode = os.getenv("DEBUG", default=False)  # 可设置默认值
print(f"API Key: {api_key}")print(f"Database URL: {db_url}")print(f"Debug Mode: {debug_mode}")

运行代码后,python-dotenv 会自动读取 .env 文件中的变量,并通过 os.getenv() 访问它们。

进阶用法

(1) 自定义 .env 文件路径

如果 .env 文件不在项目根目录,可以指定路径:

load_dotenv("/path/to/custom/.env")

(2) 覆盖系统环境变量

默认情况下,load_dotenv() 不会覆盖已存在的系统环境变量。如果想强制覆盖:

load_dotenv(override=True)

(3) 使用 .env.example 管理模板

团队协作时,可以提供一个 .env.example 文件作为模板,避免遗漏关键配置:

# .env.exampleAPI_KEY=your_api_key_hereDATABASE_URL=your_database_urlDEBUG=True
其他开发者只需复制 .env.example 并重命名为 .env,然后填写实际值即可。

实际应用场景

场景1:Flask/Django 项目配置

在Web开发中,python-dotenv 可以轻松管理不同环境的配置:

# Flask 示例from flask import Flaskfrom dotenv import load_dotenvimport os
load_dotenv()  
app = Flask(__name__)app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("DATABASE_URL")
if __name__ == "__main__":    app.run(debug=os.getenv("DEBUG"))

场景2:API密钥管理

避免在代码或版本控制中暴露密钥:

import requestsfrom dotenv import load_dotenvimport os
load_dotenv()  
API_KEY = os.getenv("WEATHER_API_KEY")response = requests.get(f"https://api.weatherapi.com/v1/current.json?key={API_KEY}&q=London")print(response.json())

注意事项

  1. 不要提交 .env 到版本控制

    • 确保 .env 在 .gitignore 中,防止敏感信息泄露。

  2. 生产环境使用真实环境变量

    • 在服务器上(如Docker、Heroku、AWS),建议直接设置系统环境变量,而非依赖 .env 文件。

总结

python-dotenv 是一个简单却强大的工具,能让你:
✅ 更安全地管理敏感信息
✅ 更灵活地切换不同环境配置
✅ 更高效地开发Python应用

如果你还没尝试过,赶紧安装它,让你的项目配置管理变得更优雅吧!

0

评论区