[Distutils] easy_install prefers source?

Michał Kwiatkowski constant.beta at gmail.com
Wed Feb 28 02:01:00 CET 2007


On 2/27/07, Nathan R. Yergler <nathan at yergler.net> wrote:
> > It only prefers what it finds, and currently it won't find Cheeseshop
> > files for "hidden" versions of a pacakge unless you include a -f to
> > that page, e.g. -f http://cheeseshop.python.org/pypi/lxml/1.1 in this
> > case.
>
> Prefering what it finds makes sense, although *I* would prefer that it
> found the page on PyPI with the egg ;).  Is the "hiding" of versions a
> Cheeseshop thing?  Is there a good reason *not* to look for the
> requested version page on Cheeseshop? (I'm guessing the answer to this
> is "we don't look for pages, we use an RPC interface [for some
> definition of RPC]", but I'll ask anyway)

Upon registering a new version of a given package previous one is
being hidden by default. This is a distutils thing and PyPI simply
implements this behaviour (by not listing hidden versions). I also
think setuptools should look at the appropriate version page of a
package, which is the right thing to do from the usability point of
view. Since user requested this version he shall have it.

In general case, if a package isn't listed on the project homepage
nothing will be find and easy_install for this specific version will
fail, which is another bad symptom of this implementation. You just
got (un)lucky enough that lxml developers list version requested by
you on their homepage. If you requested a Cheesecake 0.6 you'll get an
error, because 0.6.1 is the current version and 0.6 is hidden:

$ sudo easy_install -vv Cheesecake==0.6
Searching for Cheesecake==0.6
Reading http://cheeseshop.python.org/pypi/Cheesecake/
Reading http://pycheesecake.org/
Found link: http://darcs.idyll.org/~t/projects/twill-0.7.4.tar.gz
Found link: http://svn.pycheesecake.org/trunk#egg=Cheesecake-dev
Found link: http://cheeseshop.python.org/packages/2.4/C/Cheesecake/Cheesecake-0.6.1-py2.4.egg#md5=a3bd1eb4d01eacf731a53359ba940829
Found link: http://cheeseshop.python.org/packages/2.3/C/Cheesecake/Cheesecake-0.6.1-py2.3.egg#md5=6a19de9385bf0a0e61d5820f5b4be748
Found link: http://cheeseshop.python.org/packages/source/C/Cheesecake/cheesecake-0.6.1.tar.gz#md5=f9e19123281f812e27674140bfb19b7e
Reading http://cheeseshop.python.org/pypi/Cheesecake/0.6.1
No local packages or download links found for Cheesecake==0.6
error: Could not find suitable distribution for
Requirement.parse('Cheesecake==0.6')

"Hidden" should mean "hidden from the user *by default*", but should
not get into way of a user that *explicitly* requested a release.

Cheers,
mk


More information about the Distutils-SIG mailing list