I’ve been looking into this and the only issue I see, running a newer version of python alongside package base, is that no automatic updates will happen.
Every 2 months a point release will occur, so to stay up-to-date with bug fixes (or at least follow the Docker releases as mentioned above – follow Docker ) one will need to re-install the new python and upgrade the venv.
As to upgrading the venv I believe it may be as simple as running “python3.x -m venv --upgrade ENV_DIR” where “3.x” is replaced with whichever python to which you’re upgrading. I’m guessing you don’t want to use this for 3.7.3 -> 3.8, for example … just updating point releases.
(Looking into this has me wondering: should we have been doing the --upgrade command on the venv all along; it’s not clear to me that “apt upgrade” package updates will find their way into the venv.)
I understand the need to limit supported versions (especially if moving between releases guarantees breakage). This will be interesting to see what happens when 3.7 support is removed as every rpi user that’s not on Docker will be affected. I personally am stubbornly refusing to move to Docker – I actually went through the official install and onboarding on a spare rpi as a test and still strongly prefer my existing setup. I may need to revisit this as it seems like the maintenance burden is going up.