dephell venv run¶
Runs command in the virtual environment of current project and environment.
- If the virtual environment doesn’t exist DepHell will create it.
- If script doesn’t exist in the virtual environment DepHell tries to install it from PyPI.
For example, get help for sphinx-build
from docs
environment of current project:
$ dephell venv run --env=docs sphinx-build --help
Command can be specified in the config:
[tool.dephell.docs]
command = "sphinx-build --help"
In this case command can be omitted:
$ dephell venv run --env=docs
Environment variables¶
This command passes next environment variables into running command:
- Your current environment variables.
- Values from
vars
in config. - Values from .env file.
example of .env
file:
export POSTGRES_USERNAME="dephell"
export POSTGRES_PASSWORD="PasswordExample"
export POSTGRES_URL="psql://$POSTGRES_USERNAME:$POSTGRES_PASSWORD@localhost"
DepHell supports any format of .env
file: export
word optional, quotes optional, =
can be surrounded by spaces. However, we recommend to use above format, because it allows you to use source command to load these variables in your current shell.
Features for .env
file:
- Parameters expansion. In the example above
POSTGRES_URL
value will be expanded intopsql://dephell:PasswordExample@localhost
. If variable does not exist DepHell won’t touch it. You can explicitly escape $ sign (\$
) to avoid expansion. - Escape sequences. You can insert escape sequences like
\n
in values, and DepHell will process it.
Config example:
[tool.dephell.main]
vars = {PYTHONPATH = "."}
command = "python"
[tool.dephell.flake8]
vars = {TOXENV = "flake8"}
command = "tox"
Use .env
for secret things like database credentials and vars
in config for some environment-specific settings for running commands like environment for flake.
If you want to pass temporary variable that not intended to be stored in any file then just set this variable in your current shell:
$ CHECK=me dephell venv run python -c "print(__import__('os').environ['CHECK'])"
INFO running...
me
INFO command successfully completed
See also¶
- dephell venv shell to activate virtual environment for your current shell.