dotenv
- 安装和使用 dotenv:首先,
使用pip install python-dotenv
或者uv add python-dotenv
安装库,
并创建.env
文件,存储用户名和密码等敏感信息。 - .env 文件规则:
- 使用键值对格式。
- 支持注释。
- 值包含空格时,需用引号包裹。
- 使用 .gitignore 文件忽略 .env,避免敏感信息泄露。
- 加载 .env 文件并使用:
- 使用 load_dotenv() 函数加载 .env 文件,将变量存入 os.environ 环境中。
- 通过 os.getenv() 访问环境变量。以下是代码示例:
from dotenv import load_dotenv
import os
# 加载 .env 文件
load_dotenv(override=True)
# 读取环境变量
user_name = os.getenv('MY_USERNAME')
user_password = os.getenv('MY_PASSWORD')
print(user_name)
print(user_password)
- 管理多个环境配置:通过不同的 .env 文件(如 .env.development, .env.testing, .env.production)管理开发、测试和生产环境的配置。示例代码如下:
import os
from dotenv import load_dotenv
# 获取当前环境,默认为开发环境
environment = os.getenv('ENVIRONMENT', 'development')
# 加载对应环境的 .env 文件
env_file = f'.env.{environment}'
load_dotenv(env_file)
# 读取环境变量
db_user = os.getenv('DB_USER')
db_password = os.getenv('DB_PASS')
debug = os.getenv('DEBUG')
print(f'Environment: {environment}')
print(f'DB_USER: {db_user}')
print(f'DB_PASS: {db_password}')
print(f'DEBUG: {debug}')
切换环境:通过命令窗口(如 PowerShell, cmd, bash)设置 ENVIRONMENT 变量,演示如何根据不同环境加载配置。
使用 dotenv 库能够在团队协作和复杂项目中有效管理敏感信息,确保配置隔离,既安全又灵活。
终端写入环境变量
使用PowerShell
$env:ENVIRONMENT="development"
使用cmd
set ENVIRONMENT=development
使用bash
export ENVIRONMENT=development
可以使用以下命令测试是否设置成功
$ echo $ENVIRONMENT
development
6.写一个加载环境变量的工具文件
6.1 项目根项目下新建文件 .env.development
注意:
这里的 .development
,环境变量也要设置为 development
,文件和环境变量里的值要对应上,否则找不到配置文件
写入以下内容
MY_USERNAME="development_your_username"
MY_PASSWORD= "development_your_password"
6.2 项目根项目下新建文件 util_env.py
写入以下内容
import os
from dotenv import load_dotenv
# 获取当前环境,默认为开发环境
environment = os.getenv('ENVIRONMENT', 'development')
# 加载对应环境的 .env 文件
env_file = f'.env.{environment}'
load_dotenv(env_file,override=True)
# 获取当前环境,默认为开发环境
environment = os.getenv('ENVIRONMENT', 'development')
MY_USERNAME = os.getenv("MY_USERNAME")
MY_PASSWORD = os.getenv("MY_PASSWORD")
6.3 使用 git-bash.exe
设置环境变量
方法一:
使用bash
export ENVIRONMENT=development
方法二:使用脚本 setenv.sh
项目根目录下新建脚本文件 setenv.sh
#!/bin/bash
# set environment development or production
# 1. 使用 source 命令运行脚本 dev 或 prod
# source ./setenv.sh dev
# source ./setenv.sh prod
# 2. 验证环境变量 :
# echo $ENVIRONMENT
# 检查参数
if [ "$1" = "dev" ] || [ "$1" = "development" ]; then
export ENVIRONMENT=development
echo "环境已设置为: development"
elif [ "$1" = "prod" ] || [ "$1" = "production" ]; then
export ENVIRONMENT=production
echo "环境已设置为: production"
else
echo "用法: source ./setenv.sh [dev|prod]"
echo "当前环境: $ENVIRONMENT"
return 1
fi
# 显示当前环境
echo "当前环境变量: $ENVIRONMENT"
git-bash.exe
终端执行命令 source ./setenv.sh dev
Administrator@WIN-20240929XKQ MINGW64 /d/code/pyton/uv_demo (master)
$ source ./setenv.sh dev
环境已设置为: development
当前环境变量: development
Administrator@WIN-20240929XKQ MINGW64 /d/code/pyton/uv_demo (master)
$ echo $ENVIRONMENT
development
6.4 main.py 中使用环境变量
from util_env import MY_PASSWORD
def main():
name = "uv-demo"
print("\n")
print(f"Hello from {name}!\n")
print(f"Hello from {name}!\n")
password = MY_PASSWORD
print(f"MY_PASSWORD: {password}!\n")
if __name__ == "__main__":
main()
至此就可以使用 util_env.py
中的文件了