I have been slightly disappointed after setting up my project in a virtualenv and upgrading some stuff on my system when some virtualenv packages broke. I thought that is what virtualenv was supposed to prevent.
(Maybe I need to read the entire virtualenv documentation, to have a solid idea of how it works, and what it does exactly, but hen that will take time, and the PYTHONPATH option starts to look more appealing, as at least I do know how environmental variables work in Linux).
That's odd, in the many years I've been using venv for, I can't remember many breakages, and none that weren't fixed by either just running "virtualenv env" again or just removing and recreating it (a two-minute affair).