I learnt a few things about the python world as part of fixing this:
There is now something called poetry. Projects now contain a poetry.toml file which can be converted into a requirements.txt using poetry export --format requirements.txt > requirements.txt .
There is something called an "editable install" - https://www.python.org/dev/peps/pep-0660/ . Idea being you can just run the code and the code just "installs" away packages as needed. See https://www.python.org/dev/peps/pep-0660/#id5 .
pyproject.toml is some new project settings file that possibly replaces setup.py