> done easily with vanilla virtualenv, vanilla pip, vanilla setup.py, and a Makefile
I wouldn't call that "easy", but OK.
I wouldn't call that "easy", but OK.
# Makefile
venv:
python3 -m virtualenv --version 1>/dev/null 2>/dev/null || \
( echo "Please install virtualenv (python3 -m pip install virtualenv wheel setuptools)" && false )
[ -d venv.d ] || python3 -m virtualenv -p python3 venv.d
./venv.d/bin/pip install -r requirements.txt
$ make venv
# Running your project without setup.py
$ ./venv.d/bin/python3 my-program.py
# Running your project with setup.py
$ ./venv.d/bin/pip install .
$ ./venv.d/bin/my-program.py
The setup.py you can copy from another project and customize to your liking.