With virtualenv, you can allow each environment to use globally installed system packages by simply disabling the --no-site-packages option. This is the default behavior.
If you want each environment to install all its own packages, use --no-site-packages and you will get a simple python installation to install your own modules. This is useful if you do not want packages to conflict with system packages. I usually do this only so that changes in the system do not interfere with the working code.
I would be careful to think of it as sandboxes, because they are only partially isolated. The paths to the python binaries and libraries are changed to use the environment, but in fact that's all that happens. Virtualenv does nothing to prevent code from running from destructive things into the system. The best way for the sandbox is to correctly set Linux / Unix permissions and provide them with their own user accounts.
EDIT for version 1.7 +
By default, 1.7 should not include system packages, so if you want to use system packages, use the --system-site-packages option. For more information, check out the docs .
Kekoa source share