Раньше я вручную использовал Makefile, который выглядел примерно так:
.PHONY: all
all: tests
.PHONY: tests
tests: py_env
bash -c 'source py_env/bin/activate && py.test tests'
py_env: requirements_dev.txt setup.py
rm -rf py_env
virtualenv py_env
bash -c 'source py_env/bin/activate && pip install -r requirements_dev.txt'
Это имело приятный побочный эффект: если бы я изменил requirements_dev.txt или setup.py, он перестроил бы мой virtualenv. Но кажется немного неуклюжим.
Я хотел бы использовать tox
, чтобы сделать то же самое. Я понимаю, что у tox
есть опция --recreate
, но я бы предпочел называть ее только, когда мне нужно.
Моя новая установка выглядит примерно так:
# Makefile
.PHONY: all
all: tests
.PHONY: tests
tests:
tox
а также
# tox.ini
[tox]
project = my_project
envlist = py26,py27
[testenv]
install_command = pip install --use-wheel {opts} {packages}
deps = -rrequirements_dev.txt
commands =
py.test {posargs:tests}
Идеальное решение будет использовать только вещи из tox
, однако приемлемое решение будет включать Makefile и флаг --recreate
.
make
, отличная идея. написать этот комментарий, чтобы указать, что для сценариев оболочки гораздо проще использовать команды вvenv
напрямую:py_env/bin/pip ...
вместоbash -c 'source py_env/bin/activate && pip ...
- person minusf   schedule 23.01.2020