if you do all your python in virtualenvs, and you probably should be, the one package that sits in global is virtualenv.
when you upgrade your python installation, those virtualenvs do not upgrade themselves. you have to go and re-create your virtualenv when you upgrade python. this is annoying. this is even more annoying when you have pip.conf set with
[install]
require-virtualenv = true
[uninstall]
require-virtualenv = true
because obviously you'll get something like "Could not find an activated virtualenv (required)." if you try to run a bare --upgrade.
this script
- upgrades global virtualenv, bypassing the require-virtualenv flag just for the purposes of this install
- create a virtualenv in ~/envs/python, which will be the latest python on your system
- create a virtualenv in ~/envs/pypyr, containing pypyr + plugins.