I am aware that pip freeze > requirements.txt exists, yet that that prints out my system packages, of which only a few my directory/ project needs.
I am not using a virtualenv so I'm pretty sure I can't print out local packages like that.
I also know that pipdeptree exsists but I also don't see how that solves my problem?
pip freeze > requirements.txtgenerates a single list of the specific packages used by your current Python interpreter (which can be a venv + base interpreter) on which pip is installed. While if you usesetup.pytheinstall-requirescan list the minimum requirements. Basically your question is how to generate requirements minimum dependencies of the project and not from the current interpreter/venv. I don't know if that is possible using pip. See this question and this one.