深入理解Python之.env

Written by

in

文章目录
  • .env 是一个纯文本文件,用于保存环境变量(环境配置)。它最初被广泛用于 Unix/Linux 系统,现在被各种语言(如 Python、Node.js、Go、Java)项目采纳,成为现代开发中配置与代码解耦的重要手段。
  • .env 文件是明文文件,不加密,它的安全性来自你的使用方式,而不是文件自身。
  • 配置文件类型 是否支持结构化 可注释 易读性 编程无关性 配置复杂性 推荐用途 .env ❌(仅字符串键值) ✅ ✅ ✅ 低 环境变量、轻量配置 .json ✅(严格结构) ❌ 中 ✅ 中 配置接口、静态参数 .yaml / .yml ✅(高度结构化) ✅ ✅ ✅ 高 配置服务、K8s、Docker .ini ✅(简单结构) ✅ 中 ✅ 中 插件系统、应用启动配置 .py(Python 配置模块) ✅ ✅ ✅ ❌(依赖解释器) 任意复杂 高级配置逻辑(如 FastAPI Settings)
  • 项目 内容 .env 是 一个文本文件,保存键值对形式的环境变量 用途 用于安全、统一地管理项目配置 Python 中使用 借助 python-dotenv,结合 os.getenv() 安全性实践 不上传、设权限、用 .env.example 提供模板 对比其他配置格式 .env 简单轻量,适合小型/中型配置;复杂配置建议用 YAML/JSON 到此这篇关于深入理解Python之.env的文章就介绍到这了,更多相关Python .env内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!  您可能感兴趣的文章: Python虚拟环境Virtualenv使用教程 Python 虚拟环境venv详解 Python虚拟环境virtualenv的安装与使用详解 Python虚拟环境venv用法详解 python3.6的venv模块使用详解 python虚拟环境模块venv使用及示例
  • 目录
    • ✅ 一、.env文件是什么?
      • 📌 1.1.env文件的功能
      • 🧾 1.2.env文件格式语法详解
      • 🧩 1.3 使用场景
    • 💻 二、在 Python 中使用.env
      • ✅ 2.1 安装依赖库
      • ✅ 2.2 示例项目结构
      • 📄 2.3.env示例
      • 🐍 2.4 Python 使用方式
        • 📄config.py
        • 📄main.py
    • 🔐 三、.env的安全性机制详解
      • ✅ 安全措施建议:
        • 📁.gitignore示例:
        • 📄.env.example示例(无敏感值):
    • ⚖️ 四、与其他配置文件类型的对比
      • ✅.env的适用性总结
      • ✅ 五、总结

        .env 是一个纯文本文件,用于保存环境变量(环境配置)。它最初被广泛用于 Unix/Linux 系统,现在被各种语言(如 Python、Node.js、Go、Java)项目采纳,成为现代开发中配置与代码解耦的重要手段

        功能 说明
        配置解耦 将数据库地址、密钥、路径等配置从代码中抽离
        管理多环境 可以为不同环境(开发、测试、生产)使用不同的 .env 文件
        跨平台兼容 .env 文件是纯文本格式,可被广泛识别
        安全性增强 敏感信息如密码、Token 可独立管理,不暴露在代码仓库中

        ✅ 基本语法:

        KEY=VALUE
        

        ✅ 完整语法示例:

        # 字符串
        APP_NAME=MyAwesomeApp
        
        # 布尔值(字符串表示)
        DEBUG=True
        
        # 数字(仍作为字符串处理)
        PORT=8080
        
        # 空值
        LOG_PATH=
        
        # 引号包裹的值(包含空格)
        WELCOME_MESSAGE="Hello, user!"
        
        # 注释行
        # This is a comment
        

        ⚠️ 注意事项:

        • 不要加空格KEY = VALUE 是错误写法。
        • 所有值都是字符串(使用时需自行转换)。
        • 不支持嵌套结构(不像 JSON / YAML)。

        场景 示例配置
        本地开发配置 调试模式开关、端口号
        与数据库/服务连接配置 数据库主机、用户名、密码等
        Docker / CI / 云平台部署 注入环境变量
        应用参数配置 日志路径、语言、运行模式等

        使用 python-dotenv 来加载 .env 文件:

        pip install python-dotenv
        

        my_project/
        ├── .env
        ├── .env.example
        ├── config.py
        └── main.py
        

        APP_NAME=MyService
        DEBUG=True
        PORT=8080
        DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
        

        import os
        from dotenv import load_dotenv
        
        # 加载 .env 文件到系统环境变量中
        load_dotenv()
        
        # 从环境变量中读取配置项
        APP_NAME = os.getenv("APP_NAME", "DefaultApp")
        DEBUG = os.getenv("DEBUG", "False") == "True"
        PORT = int(os.getenv("PORT", 8000))
        DATABASE_URL = os.getenv("DATABASE_URL")
        

        from config import APP_NAME, DEBUG, PORT, DATABASE_URL
        
        def run():
            print(f"Starting {APP_NAME} on port {PORT}")
            print(f"Debug mode: {DEBUG}")
            print(f"Database: {DATABASE_URL}")
        
        if __name__ == "__main__":
            run()
        

        .env 文件是明文文件,不加密,它的安全性来自你的使用方式,而不是文件自身

        做法 描述
        ❌ 不上传 .env 到 Git 仓库 将 .env 加入 .gitignore
        ✅ 提交 .env.example 用作参考模板,不包含任何敏感信息
        ✅ 设置文件权限 本地设置为 chmod 600 .env,仅本人可读
        ✅ 在生产环境中使用系统环境变量 不在服务器存储 .env,而是通过配置平台环境变量
        ✅ 不在日志中输出环境变量 防止无意间泄露机密信息

        # 忽略本地配置
        .env
        .env.*
        !*.env.example
        

        APP_NAME=
        DEBUG=False
        PORT=8000
        DATABASE_URL=
        

        配置文件类型 是否支持结构化 可注释 易读性 编程无关性 配置复杂性 推荐用途
        .env ❌(仅字符串键值) 环境变量、轻量配置
        .json ✅(严格结构) 配置接口、静态参数
        .yaml / .yml ✅(高度结构化) 配置服务、K8s、Docker
        .ini ✅(简单结构) 插件系统、应用启动配置
        .py(Python 配置模块) ❌(依赖解释器) 任意复杂 高级配置逻辑(如 FastAPI Settings)

        优点 缺点
        ✅ 语法简单,学习成本低 ❌ 不支持复杂结构(如嵌套字典)
        ✅ 跨语言、跨平台兼容性好 ❌ 所有值为字符串,需要手动转换类型
        ✅ 与系统环境变量兼容 ❌ 不能直接包含列表或嵌套结构
        ✅ 非开发人员也能理解和编辑 ❌ 不适用于需要大量配置的复杂场景

        项目 内容
        .env 是 一个文本文件,保存键值对形式的环境变量
        用途 用于安全、统一地管理项目配置
        Python 中使用 借助 python-dotenv,结合 os.getenv()
        安全性实践 不上传、设权限、用 .env.example 提供模板
        对比其他配置格式 .env 简单轻量,适合小型/中型配置;复杂配置建议用 YAML/JSON

        到此这篇关于深入理解Python之.env的文章就介绍到这了,更多相关Python .env内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

        您可能感兴趣的文章:

        • Python虚拟环境Virtualenv使用教程
        • Python 虚拟环境venv详解
        • Python虚拟环境virtualenv的安装与使用详解
        • Python虚拟环境venv用法详解
        • python3.6的venv模块使用详解
        • python虚拟环境模块venv使用及示例

        站内搜索