[Distutils] setup.py test doesn't honor --find-links

Phillip J. Eby pje at telecommunity.com
Thu Mar 16 20:49:36 CET 2006


At 10:52 AM 3/16/2006 -0500, Tres Seaver wrote:
>I'm a bit lost as to the rationale for the separate metadata filee in
>that post:  why wouldn't we just use the 'dependency_links' attribute of
>the distribution?

Because the original post is discussing the scenario where you are 
installing an egg that was already built by someone else.  You're correct 
that the fetch_build_eggs() method can and should just use the attribute 
directly.


>   At any rate, I'm attaching a partially-working patch.

I'll take it for a spin.  It looks pretty good, except that easy_install 
doesn't use it.  I can go ahead and add that bit.  The doc is a bit, um, 
terse, but I can flesh it out a bit I guess.  :)


>I could get the 'dependency_links.txt' file to be created, but couldn't
>figure out how to use the pkg_resources facilities for reading it while
>inside 'fetch_build_eggs'.

You don't need to; it's the easy_install command that needs to do that, in 
process_distribution() I believe.


>   I alos ran into the problem that, since the
>'test' command doesn't support the usual 'easy_install' arguments (my
>original reason for posting), I couldn't control where the downloaded
>packages would be installed:  they went directly in my local sandbox.

That's where build dependencies are supposed to go, actually; building and 
testing a package shouldn't cause build-time dependencies to be permanently 
installed on the build system, without an explicit action.  You can always 
"easy_install *.egg" if you want to make them permanent.


>My original plan was to add the 'easy_install' command line args to
>the 'test' command, which would have allowed:
>
>     $ /path/to/python setup.py test \
>        --find-links="http://download.zope.org/distribution"
>
>Under the mechanism you redireted me to, I need to add the equivalent
>URL into zi/setup.py as a 'dependency_link' argument to 'setup', and
>then arrange for that value to be used as the 'find_links' value for
>the 'test' command.  Is that what you intended?

Yes; it should get passed to the find_links argument given to the 
easy_install command instance created by Distribution.fetch_build_eggs(), 
which is what your patch does.



More information about the Distutils-SIG mailing list