[Distutils] Comments on PEP 426

Paul Moore p.f.moore at gmail.com
Thu Aug 29 17:49:18 CEST 2013

On 29 August 2013 16:02, Oscar Benjamin <oscar.j.benjamin at gmail.com> wrote:
>On 29 August 2013 15:30, Antoine Pitrou <antoine at python.org> wrote:
>> (after all, it's just "python setup.py build_bdist", or something :-))
> The point is that pip and other packaging tools will use 'python
> setup.py ...' to do all the building and wheel making and so on.
> However the required interface that setup.py should expose is not
> documented anywhere and is essentially implementation defined where
> the implementation is the setup() function from a recent version of
> setuptools. In the interest of standardising the required parts of
> existing practice the required subset of this interface should be
> documented.

Specifically, the command is

    python setup.py bdist_wheel

But that requires the wheel project and setuptools to be installed,
and we're not going to require all users to have those available.

Also, other projects can build wheels with different commands/interfaces:
* distlib says put all your built files in a set of directories then
do wheel.build(paths=path_mapping) - no setup.py needed at all
* pip says pip wheel requirement (but that uses setuptools/wheel under the hood)
* bento might do something completely different

The whole question of standardising the command line API for building
(sdists and) wheels is being avoided at the moment, as it's going to
be another long debate (setup.py is too closely associated with
distutils and/or setuptools for some people).

AIUI, we're sort of moving towards the "official" command line API
being pip's (so "pip wheel XXX") but that's not a complete answer as
currently pip internally just uses the setup.py command line, and the
intention is to decouple the two so that alternative build tools (like
bento, I guess) get a look in. It's all a bit vague at the moment,
though, because nobody has even looked at what alternative build tools
might even be needed.

I could have this completely wrong, though - we're trying very hard to
keep the work in small chunks, and building is not one of those chunks


More information about the Distutils-SIG mailing list