如何通过 python-decouple 使用不同的 .env 文件

How to use different .env files with python-decouple

我正在开发一个 django 项目,我需要 运行 它与 Docker。在这个项目中我有多个 .env 文件:.env.dev, .env.prod, .env.staging.有没有一种正确的方法可以使用包 python-decouple 来管理所有这些文件?我一直在寻找应对这一挑战的解决方法,但没有找到任何答案,甚至在 official documentation.

上也找不到

我可以使用类似的东西吗:

# dont works that way, it's just a dummie example
python manage.py runserver --env-file=.env.prod

或者有什么方法可以设置或覆盖我需要使用的文件?

不是导入 decouple.config 并执行通常的 config('SOME_ENV_VAR'),而是使用 RepositoryEnv('/path/to/.env.prod').

创建一个新的 decouple.Config 对象
from decouple import Config, RepositoryEnv

DOTENV_FILE = '/home/user/my-project/.env.prod'
env_config = Config(RepositoryEnv(DOTENV_FILE))

# use the Config().get() method as you normally would since 
# decouple.config uses that internally. 
# i.e. config('SECRET_KEY') = env_config.get('SECRET_KEY')
SECRET_KEY = env_config.get('SECRET_KEY')