[Distutils] Distutils and Distribute roadmap (and some words on Virtualenv, Pip)

David Cournapeau david at ar.media.kyoto-u.ac.jp
Thu Oct 29 04:55:14 CET 2009

Chris Withers wrote:
> "even" seems to imply this is a basic requirement. I wonder how many
> people are rolling out python apps on Win64? I'm certainly not...

Even was maybe a bit strong. Concerning win64, the first release of
numpy we did for win64 has been downloaded 3000 times, even though it is
experimental and not working. Obviously, this is linked to 'our'
community: in scientific software, 64 bits arch has mattered for a long
time, and a lot of people use windows, for better or worse.

In numpy/scipy, even though the vast majority of dev are linux/mac os x
users, windows installers are by far the most downloaded (the numbers
are obviously skewed since many people can build from svn on linux/mac
os x, whereas very few people will do so on windows).

>> I think it is also important to keep in mind that not everybody use the
>> same workflow - I myself build a lot of non trivial python softwares on
>> many platforms, and the whole virtualenv/buildout/pip workflows is very
>> foreign to me, and do not fit at all how I want to build and deploy
>> things. 
> How do you build and deploy things?

To answer your question: I use distutils, scons, and native OS package
tools. Sandboxing at build time is done through chrooting (and some
hacked wine setup for windows).

I think the main issue is that we don't mean the same thing by "deploy
things". For web developers, it seems that deploying mean repeat an
exact environment with all its dependencies on a similar machine (or set
of machines), often by the same person (or at least a technically
competent person). In that scenario, if there is a problem (wrong
pythonpath, double entry from an egg, etc...), you can easily fix it,
and being able to use latest version of some libraries + developer
convenience is the key.

By deploying, I mean being able to give a single file which people can
install by themselves, people who are often ignorant about PYTHONPATH,
import mechanisms, what a .pth file is. In that scenario, altering the
environment in a non workable state is a total failure. Developer
convenience is a problem in many cases (concrete case: using the VCS to
get which files to put in a distribution).

This article is about ruby, but totally nails it IMHO:

Given that web dev are the ones doing the work, it is natural and
certainly legitimate that current distutils-related work is focused on
this workflow. But this workflow is not always applicable to more
'traditional' deployments scenario, and it often does make life more
difficult. It certainly did for me.


More information about the Distutils-SIG mailing list