管理 Python 项目中的机密和 API 密钥(.env 指南)

如果您在 Python 中使用 API 密钥,则需要一种安全的方式来存储它们。本指南介绍了七种适合初学者的使用 .env 文件管理机密的技术。

来源:KDnuggets

保守秘密简介

直接在 Python 代码中存储 API 密钥、数据库密码或令牌等敏感信息是危险的。如果这些秘密被泄露,攻击者可能会闯入您的系统,您的组织可能会遭受失去信任、财务和法律后果。相反,您应该将机密外部化,以便它们永远不会出现在代码或版本控制中。常见的最佳实践是将机密存储在环境变量中(在代码外部)。这样,秘密就不会出现在代码库中。虽然手动环境变量可以工作,但对于本地开发来说,将所有秘密保存在单个 .env 文件中会很方便。

本文解释了在 Python 项目中管理机密的七种实用技术,并附有代码示例和常见陷阱的解释。

技术 1:在本地使用 .env 文件(并安全加载)

A.env 文件是您在本地保存的 KEY=值对的文本文件(不在版本控制中)。它允许您定义特定于环境的设置和开发秘密。例如,推荐的项目布局是:

我的项目/

应用程序/

主要.py

设置.py

.env # 未提交 – 包含真正的秘密

.env.example # commit – 列出没有实际值的键

.gitignore

pyproject.toml

你的实际秘密进入本地的.env,例如:# .env(仅限本地,从不提交)OPENAI_API_KEY=your_real_key_hereDATABASE_URL=postgresql://用户:pass@localhost:5432/mydb调试=真相反,.env.example 是您提交的模板,供其他开发人员查看需要哪些密钥:# .env.example(提交此)OPENAI_API_KEY=DATABASE_URL=调试=假添加模式以忽略 Git 中的这些文件:这样你的秘密 .env 就不会被意外签入。在 Python 中,常见的做法是使用 python-dotenv 库,它将在运行时加载 .env 文件。例如,在 app/main.py 中,您可以编写:技巧 2:从环境中读取秘密技术 3:使用设置模块验证配置