The one obvious way is the underlying virtualenv abstraction. Everything else just makes that part easier or more transparent.