Pipenv: Multiple Environments
You should create different .env
files with different prefixes depending on the environment, such as production.env
or testing.env
. With pipenv
, you can use the PIPENV_DONT_LOAD_ENV=1
environment variable to prevent pipenv shell
from automatically exporting the .env
file and combine this with export $(cat .env | xargs)
.
export $(cat production.env | xargs) && PIPENV_DONT_LOAD_ENV=1 pipenv shell
would configure your environment variables for production and then start a shell in the virtual environment.
I'm far from a Python guru, but one solution I can think of would be to create Pipenv scripts that run shell scripts to change the PIPENV_DOTENV_LOCATION
and run your startup commands.
Example Pipfile scripts:
[scripts]
development = "./scripts/development.sh"
development.sh Example:
#!/bin/sh
PIPENV_DOTENV_LOCATION=/path/to/.development_env pipenv run python test.py
Then run pipenv run development