47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
从 .env 文件加载环境变量
|
||
"""
|
||
import os
|
||
from pathlib import Path
|
||
|
||
def load_env(env_path: Path | None = None) -> None:
|
||
"""
|
||
从 .env 文件加载环境变量
|
||
|
||
Args:
|
||
env_path: .env 文件路径(默认:当前目录的 .env)
|
||
"""
|
||
if env_path is None:
|
||
# 查找 .env 文件
|
||
possible_paths = [
|
||
Path(".env"),
|
||
Path(__file__).parent.parent / ".env",
|
||
Path.cwd() / ".env",
|
||
]
|
||
for p in possible_paths:
|
||
if p.exists():
|
||
env_path = p
|
||
break
|
||
|
||
if not env_path or not env_path.exists():
|
||
return # 没有 .env 文件,跳过
|
||
|
||
print(f"📄 加载环境变量:{env_path}")
|
||
|
||
with open(env_path, "r", encoding="utf-8") as f:
|
||
for line in f:
|
||
line = line.strip()
|
||
# 跳过空行和注释
|
||
if not line or line.startswith("#"):
|
||
continue
|
||
# 解析 KEY=VALUE
|
||
if "=" in line:
|
||
key, value = line.split("=", 1)
|
||
key = key.strip()
|
||
value = value.strip()
|
||
# 只设置尚未存在的环境变量
|
||
if key not in os.environ:
|
||
os.environ[key] = value
|
||
print(f" ✓ {key} = {value[:10]}...")
|