[Distutils] easy_install doesn't handle extras properly

Jim Fulton jim at zope.com
Wed Aug 22 20:52:39 CEST 2007


Suppose I have a package x that defines an extra y in version 2.  In  
version 3, I remove the extra.

Now, if I use easy_install to request x with extra y.  easy_install  
will get the newest x, version 3, and complain that it has no extra y:

   (env25)jim at ds9:~/tmp$ easy_install -f /home/jim/tmp/x/dist 'x[y]'
   Searching for x[y]
   Best match: x 3
   Processing x-3-py2.5.egg
   creating /home/jim/tmp/env25/lib/python2.5/x-3-py2.5.egg
   Extracting x-3-py2.5.egg to /home/jim/tmp/env25/lib/python2.5
   Adding x 3 to easy-install.pth file

   Installed /home/jim/tmp/env25/lib/python2.5/x-3-py2.5.egg
   Processing dependencies for x[y]
   Traceback (most recent call last):
   ...
   pkg_resources.UnknownExtra: x 3 has no such extra feature 'y'

If I tell easy_install to install a version < 3, then it gets version  
2, which has the extra:

   (env25)jim at ds9:~/tmp$ easy_install -f /home/jim/tmp/x/dist 'x[y] <3'
   Searching for x[y]<3
   Best match: x 2
   Processing x-2-py2.5.egg
   ...
   Finished installing x[y]<3

easy_install is supposed to get the best distribution that satisfies  
a requirement, but it doesn't handle the extra part of the  
requirement.  This is just another example of the burden of  
supporting the feature.  Can we *please* get rid of the extras  
feature.  It has some benefit, but I really don't think the benefit  
justifies the extra complexity in the model or the burden on tool  
developers.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the Distutils-SIG mailing list