简介
将环境变量从 .env 文件加载到中 process.env
基础使用
安装
pip install -U python-dotenv
使用
最简单和最常见的用法是在应用程序启动时调用load_dotenv
,从当前目录或其父目录中的.env
文件或指定的路径加载环境变量,然后你可以调用os.getenv
提供的与环境相关的方法。
# .env 文件
NAME = "Capsion"
EMAIL = "37370415@qq.com"
你可以使用单词export
作为每行的前缀,这将会使python-dotenv
忽略该变量,但是你可以使用 source
命令运行该文件。
python-dotenv
可以用来修改 POSIX
系统的环境变量.
变量的值是下面列表中定义的第一个值:
- 系统环境变量
.env
文件中定义的值- 默认值,如果有的话
- 空字符串
确保引用其他变量时用大括号{}
包围,就像${HOME}
,因为像$HOME
这样的字符串不会被认为是变量的引用
# 引用了系统的环境变量 HOME
PRO_PATH = ${HOME}/.capsion
内置方法
load_dotenv
参数:
- dotenv_path: 指定.env文件路径,当然如果不传该参数的话(默认为None)也会自定调用dotenv.find_dotenv()去查找文件位置的,但是你的文件名如果不是.env那就必须传递该参数了
- override: 当.env 文件中有变量与系统中原来的环境变量有冲突时,按照上面的取值顺序,默认使用系统变量,如果要用.env中的变量覆盖系统变量,可以给load_dotenv() 传递参数override=True。此时只是临时使用了.env 中的变量值
- encoding: load_dotenv() 也可以传递encoding 参数指定文件的编码方式。
使用示例
确保你的项目目录下 有
.env
文件
# 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)
# 使用
import os
SECRET_KEY = os.getenv("EMAIL")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")
过load_dotenv
,你就可以访问像访问系统环境变量一样使用.env
文件中的变量了,比如通过 os.genenv(key, default=None)