现在我正在使用virtualenv
,只是切换到Pipenv
。今天,在virtualenv中,通过将development
设置为production
,根据我是testing
,DJANGO_SETTINGS_MODULE
还是myproject.settings.development
来加载不同的环境变量和设置, myproject.settings.production
和myproject.settings.testing
。
我知道我可以设置一个.env
文件,但是如何拥有该.env
文件的多个版本?
答案 0 :(得分:1)
您应根据环境创建具有不同前缀的不同.env
文件,例如production.env
或testing.env
。使用pipenv
,您可以使用PIPENV_DONT_LOAD_ENV=1
环境变量来防止pipenv shell
自动导出.env
文件并将其与export $(cat .env | xargs)
组合。
export $(cat production.env | xargs) && PIPENV_DONT_LOAD_ENV=1 pipenv shell
将配置生产环境变量,然后在虚拟环境中启动Shell。
答案 1 :(得分:1)
我离Python专家还很远,但是我能想到的一种解决方案是创建Pipenv scripts来运行shell脚本来更改PIPENV_DOTENV_LOCATION
并运行启动命令。
示例Pipfile脚本:
[scripts]
development = "./scripts/development.sh"
development.sh示例:
#!/bin/sh
PIPENV_DOTENV_LOCATION=/path/to/.development_env pipenv run python test.py
然后运行pipenv run development