This may be obvious to everyone else, and I'm just over-thinking things, but here goes anyways. It's obviously not completely circular, but the recommended path seems so.
Since this has gotten really long, I'll start with my suggestion. If you start at the virtualenv docs, the first suggestion should be a failsafe way to install virtualenv without pip or anything else that might be missing from the distro ('curl virtualenv_setup | python?). If you start at the pip docs, the first suggestion should be how to install virtualenv normally, not a non-root workaround.
So the goal is to I'll start with whatever ancient version of python is included with my distro, and get the latest versions of pip and virtualenv, ideally with a clear and simple upgrade path for each.
I'll start with virtualenv, from the docs
You can install virtualenv with
pip install virtualenv, or the latest development version with
pip install virtualenv==dev.
The whole point is that I don't have, so that's out. I'll keep reading...
You can also use
easy_installor if you have no Python package manager available at all, you can just grab the single file virtualenv.py and run it with
easy_install happened to be the way I got things working, but lets say my distro wasn't kind enough to provide that. And grabbing virtualenv.py seems like a good temporary solution, but not a long term one.
OK, so how about we try starting with pip? from the docs:
The recommended way to use pip is within virtualenv, since every virtualenv has pip installed in it automatically. This does not require root access or modify your system Python installation. For instance:
Hoo boy. Again, simply downloading virtualenv.py is to me a temporary solution, and undesirable on systems I do have root access to.
Prior to installing pip make sure you have either setuptools or distribute installed
OK, so to install a package manager, I first need to install some other installation helper? Is this just for the purposes of installing or are they dependencies that have to stick around? In any case, installing from curl is pretty neat(1).
Download get-pip.py and execute it, using the Python interpreter of your choice:
Neat, another curl-install. This gives me a pip for my distro's version of python, and allows me to get virtualenv for it, which then gives me a separate pip per env. I think? Since I already have things set up, I can't try this method to see what it does.
(1) Out of curiosity, I checked on the recommended way to install distribute. Fortunately, it is basically this curl method. You could use pip, though!