如何在Python中加载不同环境的.env文件?

问题描述 投票:0回答:3

我有三个用于本地、开发和生产环境的 .env 文件,我必须在为该服务器进行部署时加载特定的环境文件,即如果正在进行 DEV 部署,则 dev .env 文件应该加载所有文件。

python flask dotenv
3个回答
10
投票

您可以使用 pip 模块 python-dotenv 加载 .env 文件。
这是您需要做的:

from dotenv import load_dotenv

load_dotenv(some_path)

现在位于

some_path
的 env 文件中的变量可以与
os.getenv

一起使用

2
投票

这是我的解决方案,如何根据不同的需求加载不同的环境文件

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)

0
投票

最初,您必须为此使用环境变量并使用它来加载正确的环境文件。

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
© www.soinside.com 2019 - 2024. All rights reserved.