I’m not sure there’s a perfect solution for this, but in the interest of being explicit rather than implicit (PEP 20), I’ve decided to check in a file that needs to be sourced before running any script. This is one extra manual step but you can put this in a Makefile for instance.
env.sh
export PYTHONPATH=${PYTHONPATH}:${PWD}
Makefile
bar:
source env.sh && pipenv run python scripts/bar.py
.PHONY: migrate
The solution is a bit similar to the approach Go takes with its GOPATH
.
I think the other solutions are not as good:
pipenv
aims to solve dependencies, I could be wrong but I did not find anything related to the problem of thePYTHONPATH
.- Linking folders won’t scale really well if you start having other scripts folder.