The need to create a separate virtual environment for every piece of software one touches in order to avoid version collisions is not exactly what I'd call fantastic. Somehow other language ecosystems manage to sidestep this problem entirely by simply versioning libraries within a single shared repository. That, is fantastic.