[Distutils] Making pip and PyPI work with conda packages

Paul Moore p.f.moore at gmail.com
Mon May 18 12:30:28 CEST 2015

On 18 May 2015 at 05:32, David Cournapeau <cournape at gmail.com> wrote:
> Note that some packages will push hard against injecting setuptools, at
> least until it does not offer a way to prevent from installing as an egg
> directory. Most of the core scientific packages avoid setuptools because of
> this.

One way forward in terms of building wheels is to use any build
process you like to do an isolated build (I think it's --root that
distutils uses for this sort of thing) and then use distlib to build a
wheel from the resulting directory structure (or do it by hand, it's
not much more than a bit of directory rearrangement and zipping things

That process can be automated any way you like - although ideally via
something general, so projects don't have to reinvent the wheel every

If processes like conda then used wheels as their input for building
packages, the wheels could *also* be published (either on PyPI or on a
3rd party site such as binstar) to provide support for people not
using conda for their package maintenance.

There may be technical issues with this process - not least, does the
way conda uses shared libraries make going via wheels impossible (or
at least make the wheels unusable without conda's support for
installing non-Python shared libraries)? But it does remove a lot of
the duplication of effort and competition that currently seems to be
involved in the conda vs wheel situation.

In this scenario, there are two binary formats - wheel and conda (the
format). There are a number of packaging tools, notably pip and conda
(the tool). Other tools and/or formats can be built on the wheel
binary format to address specific communities' needs, much as conda
does for the Scientific community. Here, wheel and pip are the bottom
layer, the Python specific binary format and package manager. They are
appropriate for people with generalised needs, and for communities
with no need for a more advanced/specialised tool.


More information about the Distutils-SIG mailing list