
Forwarding to the list because I wasn't smart enough to "reply-all"...
---------- Forwarded message ---------- From: Nathan R. Yergler nathan@yergler.net Date: Feb 27, 2007 5:36 PM Subject: Re: [Distutils] easy_install prefers source? To: "Phillip J. Eby" pje@telecommunity.com
c:...>easy_install lxml==1.1
attempts to retrieve the source distribution rather than the available Windows binary egg for PyPI.
What windows binary egg for PyPI? If you mean the one for 1.1, the problem is that easy_install isn't reading that page, because it's a "hidden" version. See:
Yes, I meant the one for 1.1; I assumed (incorrectly, obviously) that by specifying the version, easy_install would look at that particular version page in PyPI if it existed.
$ python -m easy_install -nvv lxml==1.1 Searching for lxml==1.1
[snip]
Downloading http://codespeak.net/lxml/lxml-1.1.tgz
Is this the expected behavior? I would have expected easy_install to prefer binary eggs.
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)
Thanks,
Nathan

On 2/27/07, Nathan R. Yergler nathan@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.... Found link: http://cheeseshop.python.org/packages/2.3/C/Cheesecake/Cheesecake-0.6.1-py2.... Found link: http://cheeseshop.python.org/packages/source/C/Cheesecake/cheesecake-0.6.1.t... 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
participants (2)
-
Michał Kwiatkowski
-
Nathan R. Yergler