Pipenv:多种环境

时间:2019-02-27 00:06:58

标签: python virtualenv pipenv

现在我正在使用virtualenv,只是切换到Pipenv。今天,在virtualenv中,通过将development设置为production,根据我是testingDJANGO_SETTINGS_MODULE还是myproject.settings.development来加载不同的环境变量和设置, myproject.settings.productionmyproject.settings.testing

我知道我可以设置一个.env文件,但是如何拥有该.env文件的多个版本?

2 个答案:

答案 0 :(得分:1)

您应根据环境创建具有不同前缀的不同.env文件,例如production.envtesting.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