After you upgrade your Python/distribution (specifically, this happened to me after upgrading from Ubuntu 11.10 to 12.04), your existing virtualenv environments may stop working. This manifests itself as reports that some modules are missing. For example, when I tried to open a Django shell, it complained that urandom was missing from the os module. I guess almost any module can break.
Apparently, the solution is dead simple. Just re-create the virtualenv environment:
virtualenv /PATH/TO/EXISTING/ENVIRONMENT
or
virtualenv --system-site-packages /PATH/TO/EXISTING/ENVIRONMENT
(depending on how you created it) in the same place. All the modules you’ve already installed should keep working as before (at least it was that way for me).