[Distutils] requiring python 2.5

Rick Ratzel rlratzel at enthought.com
Sat Jun 9 04:26:18 CEST 2007


   Is there a way to have my package tell setuptools to "ignore" certain other
packages?

   I'm working on a project called Enstaller, which basically sits on top of
setuptools and adds functionality like query options, a GUI, etc.  I'm
attempting to make it a standalone "bundled" egg, where all of it's dependencies
are included in 2 eggs: the "core" egg, and the optional GUI egg.  Prior to
this, it was distributed as a single egg with several dependencies specified in
the install_requires line which were automatically installed.  The problem with
that was that these packages were used for many other related projects, and when
users would upgrade, downgrade, or unknowingly remove them, the Enstaller app
would be left broken.  The "bundled" approach seemed to work great: it was
installed with -m so other projects would not import the possibly incompatible
packages in enstaller, and only one or two eggs were installed instead of the
intimidating dozen or so.  A console_script entry point allowed users to type
"enstaller" to start the app.

   The bundled egg is structured like this:

enstaller.egg/
   enthought/
      enstaller/
      traits/

   Here, I've "bundled" in the enthought.traits package.  The problem is, when I
install the enthought.traits egg separately, python finds the traits package in
the enthought.traits egg instead of the the one in the enstaller egg.

   I've tried removing all the "enthought." eggs from sys.path before anything
else gets imported, but even that doesn't work (and it just felt wrong, and
probably is).  I looked at the docs for manipulating the WorkingSet, but made no
progress there either...python always managed to find the incompatible
enthought.traits code in the enthought.traits egg.  When I remove the
incompatible enthought.traits, all works fine.

   What I'd like to do is simply say "do not use any enthought.* eggs".  Is this
possible?  Thanks in advance!


--
Rick Ratzel - Enthought, Inc.
515 Congress Avenue, Suite 2100 - Austin, Texas 78701
512-536-1057 x229 - Fax: 512-536-1059
http://www.enthought.com






More information about the Distutils-SIG mailing list