[Python-Dev] distutils 'depends' management

Éric Araujo merwok at netwok.org
Fri Feb 3 17:52:29 CET 2012


Hi Matteo,

> Now setup.py will rebuild all every time, this is because the policy 
> of
> newer_group in build_extension is to consider 'newer' any missing 
> file.
Here you certainly mean “older”.

> [...] Can someone suggest me the reason of this choice
distutils’ notion of dependencies directly comes from make. A missing
(not existing) target is perfectly normal: it’s usually a generated 
file
that make needs to create (i.e. compile from source files).  In this
world, you want to (re-)compile when the target is older than the
sources, or when the target is missing.

So here your extension module is a target that needs to be created, and
when distutils does not find a file with the name you give in depends, 
it
just thinks it’s another thing that will be generated.

This model is inherently prone to typos; I’m not sure how we can 
improve
it to let people catch possible typos.

Cheers


More information about the Python-Dev mailing list