[Distutils] setup_requires not caching downloaded packages?

Barry Warsaw barry at python.org
Fri Jun 26 23:08:24 CEST 2009


Hi Zooko,

On Jun 23, 2009, at 11:42 AM, Zooko Wilcox-O'Hearn wrote:

> What is the download cache?

It's where buildout caches packages it downloads and it's very handy  
because we can tell buildout to use a pre-defined download cache and  
to never download anything from the intarwebs.  Except that this  
doesn't work for setup_requires packages, so that seems like a bug in  
buildout.  We really don't want to add those to install_requires  
because the clients of our libraries don't care.

> I have a guess.  If you are installing with the setuptools "install"  
> command, then the things which are "install_requires" get installed  
> into some target location, but things which are build_requires get  
> installed into the PWD.

Right, that's another thing I don't particularly like about  
setup_requires.  I don't like those packages polluting my pwd.

> (If you don't specify a target, then it is the system site- 
> packages.  In my build system [1], we typically don't use "install"  
> and instead use "develop" with a --prefix argument which specifies  
> the target.  I assume virtualenv does something similar.)

I think so.  We use buildout, which has the moral equivalent of  
'develop'.

> Therefore, a later build will have its install_requires already  
> satisfied (if it is using the same installation target), but its  
> build_requirements will not be satisfied.

Right.

> If that's what's going on then a solution might involve pre- 
> installing setuptools_bzr onto the build system, or patching  
> setuptools to specify a location for build requirements and re-using  
> that location.

We could pre-install setuptools_bzr if we built an Ubuntu package for  
it.  I think the right thing for us is to look into patching buildout  
so that it can get its setup_requires from its download cache.

Cheers,
-Barry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 832 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20090626/acf569c9/attachment-0001.pgp>


More information about the Distutils-SIG mailing list