我有三个用于本地、开发和生产环境的 .env 文件,我必须在为该服务器进行部署时加载特定的环境文件,即如果正在进行 DEV 部署,则 dev .env 文件应该加载所有文件。
您可以使用 pip 模块 python-dotenv 加载 .env 文件。
这是您需要做的:
from dotenv import load_dotenv
load_dotenv(some_path)
现在位于
some_path
的 env 文件中的变量可以与 os.getenv
一起使用
这是我的解决方案,如何根据不同的需求加载不同的环境文件
import os
from pathlib import Path
from dotenv import load_dotenv
APP_ROOT = os.path.join(os.path.dirname(__file__))
PROFILE_DIR = Path(APP_ROOT) / 'profile'
STORAGE_DIR = Path(APP_ROOT) / 'storage'
# add configurations here...
FLASK_ENV = os.getenv('FLASK_ENV') or 'development'
# define here environment config files you want to load
ENVIRONMENTS = {
'development': '.env',
'docker': '.env.docker',
}
dotenv_path = os.path.join(APP_ROOT, ENVIRONMENTS.get(FLASK_ENV) or '.env')
# Load Environment variables
load_dotenv(dotenv_path)
最初,您必须为此使用环境变量并使用它来加载正确的环境文件。
import os
from dotenv import load_dotenv
APP_ENV = os.getenv('APP_ENV')
load_dotenv(dotenv_path=f'{BASE_DIR}/.env.{APP_ENV}')
根据您使用的任何应用程序,如下运行您的应用程序。
export APP_ENV=dev && python3 manage.py runserver 0.0.0.0:8000