Python中的dotenv的详细用法
最简单和最常见的用法是在应用程序启动时调用load_dotenv,从当前目录或其父目录中的.env文件或指定的路径加载环境变量,然后你可以调用os.getenv提供的与环境相关的方法。
.env 文件内容写法
1 2 3 4 | # a comment that will be ignored. REDIS_ADDRESS = localhost: 6379 MEANING_OF_LIFE = 42 MULTILINE_VAR = "hello\nworld" |
你可以使用单词export作为每行的前缀,这将会使python-dotenv 忽略该变量,但是你可以使用 source 命令运行该文件。
python-dotenv 可以用来修改 POSIX系统的环境变量。
变量的值是下面列表中定义的第一个值:
系统环境变量
.env 文件中定义的值
默认值,如果有的话
空字符串
确保引用其他变量时用大括号{}包围,就像${HOME}
,因为像$HOME
这样的字符串不会被认为是变量的引用。
1 2 3 4 | CONFIG_PATH = ${HOME} / .config / foo DOMAIN = example.org EMAIL = admin@${DOMAIN} DEBUG = ${DEBUG: - false} |
项目中使用
安装
1 | pip install - U python - dotenv |
基本用法
确保你的项目目录下 有 .env 文件
1 2 3 | . ├── .env └── settings.py |
然后你可以在settings.py中添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # settings.py from dotenv import load_dotenv, find_dotenv from pathlib import Path # Python 3.6+ only # 一、自动搜索 .env 文件 load_dotenv(verbose = True ) # 二、与上面方式等价 load_dotenv(find_dotenv(), verbose = True ) # 三、与上面方式等价 指定 .env 文件位置 env_path = Path( '.' ) / '.env' load_dotenv(dotenv_path = env_path, verbose = True ) |
通过load_dotenv ,你就可以访问像访问系统环境变量一样使用.env文件中的变量了,比如通过
```
os.genenv(key, default=None)
1 2 3 4 5 | # settings.py import os SECRET_KEY = os.getenv( "EMAIL" ) DATABASE_PASSWORD = os.getenv( "DATABASE_PASSWORD" ) |
参数
dotenv_path: 指定.env文件路径,当然如果不传该参数的话(默认为None)也会自定调用dotenv.find_dotenv()去查找文件位置的,但是你的文件名如果不是.env那就必须传递该参数了
override: 当.env 文件中有变量与系统中原来的环境变量有冲突时,按照上面的取值顺序,默认使用系统变量,如果要用.env中的变量覆盖系统变量,可以给load_dotenv() 传递参数override=True。此时只是临时使用了.env 中的变量值
encoding: load_dotenv() 也可以传递encoding 参数指定文件的编码方式。
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器