23 lines
1.1 KiB
Text
23 lines
1.1 KiB
Text
|
virtualenv is a tool to create isolated Python environments.
|
||
|
|
||
|
The basic problem being addressed is one of dependencies and
|
||
|
versions, and indirectly permissions. Imagine you have an application
|
||
|
that needs version 1 of LibFoo, but another application requires
|
||
|
version 2. How can you use both these applications? If you install
|
||
|
everything into /usr/lib/python2.7/site-packages (or whatever your
|
||
|
platform's standard location is), it's easy to end up in a situation
|
||
|
where you unintentionally upgrade an application that shouldn't be
|
||
|
upgraded.
|
||
|
|
||
|
Or more generally, what if you want to install an application and
|
||
|
leave it be? If an application works, any change in its libraries
|
||
|
or the versions of those libraries can break the application.
|
||
|
|
||
|
Also, what if you can't install packages into the global site-packages
|
||
|
directory? For instance, on a shared host.
|
||
|
|
||
|
In all these cases, virtualenv can help you. It creates an environment
|
||
|
that has its own installation directories, that doesn't share
|
||
|
libraries with other virtualenv environments (and optionally doesn't
|
||
|
access the globally installed libraries either).
|