[Distutils] Parallel installation of incompatible versions

Daniel Holth dholth at gmail.com
Wed Mar 20 14:02:46 CET 2013


Not sure how you could do a good job having one version of a package
available by default, and a different one available by requires().
Eggs list the top level packages provided and you could shadow them
but it seems like it would be really messy.

Ruby Gems appear to have a directory full of gems:
~/.gem/ruby/1.8/gems/. Each subdirectory is {name}-{version} and
doesn't need any suffix - we know what they are because of where they
are.

bundler-1.2.1
json-1.7.5
sinatra-1.3.3
tilt-1.3.3
tzinfo-0.3.33

Each subdirectory contains metadata, and a lib/ directory that would
actually be added to the Ruby module path.

Like with pkg_resources, developers are warned to only "require Gems"
on things that are *not* imported (preferably in the equivalent of our
console_scripts wrappers). Otherwise you get an unwanted Gem
dependency if you ever tried to use the same gem outside of the gem
system.


More information about the Distutils-SIG mailing list