PY_MINOR=11 VENV_NAME=.venv_$(PY_MINOR) VENV=$(CURDIR)/$(VENV_NAME) python=$(VENV)/bin/python pip=$(python) -m pip _delete_venv: ( [ -d $(VENV_NAME) ] && rm -fr $(VENV_NAME) ) || echo "no venv to drop" _create_venv: python3.$(PY_MINOR) -m venv $(VENV_NAME) clean: _delete_venv _create_venv install: $(python) -m pip install -r requirements.txt install_dev: $(python) -m pip install -r requirements_dev.txt test: already_in_venv=True $(python) -m unittest discover . run_dev: $(python) dev.py