I’ve a lot of code that depends on different versions of the same library, its quite hard to maintain the different versions installed in their specific dirs along with all their dependencies without tainting anything else.

To be able to run all of this code in one machine i’ve to make a lot of manipulation to the PYTHONPATH configuration. This is painfull and time-consuming. The plot thickens if i want to test some new version of the same library.

I found out virtualenv, this is a small python utility that bootstraps isolated python environments.

It allows you to maintain your application, libraries and all their dependencies in a isolated environment.

It also installs setup-tools in the virtual environment turning all your new libraries installations into painless tasks.

It comes with a set of handy scripts ( per-environment ) to activate and deactivate the environment so it’s quite simple to switch around environments.

Optionally you can make your environments inherit ( as a fallback ) the system site-packages and, with little effort, your enviromnents can be “relocatable” not being tied to any specific path which makes it possible to move them around your filesystem.