我有三个.env文件用于本地、开发和生产环境,在为该服务器进行部署时,我必须加载特定的环境文件,即如果正在进行dev部署,则dev.env应加载所有文件。
您可以使用pip模块python-dotenv来加载.env文件
以下是您需要做的:
from dotenv import load_dotenv
load_dotenv(some_path)
现在,位于some_path
的env文件中的vars可以与os.getenv
一起使用
以下是我的解决方案,如何根据不同需求加载不同的env文件
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)