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@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@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