[Python-Dev] Status of packaging in 3.3 (original) (raw)

Zooko Wilcox-O'Hearn zooko at zooko.com
Thu Jun 21 17:02:58 CEST 2012


On Thu, Jun 21, 2012 at 12:57 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:

Standard assumptions about the behaviour of site and distutils cease to be valid once setuptools is installed- advocacy for the "egg" format and the associated sys.path changes that result for all Python programs running on a systemSystem administrators (and developers that think like system administrators when it comes to configuration management) hate what setuptools (and setuptools based installers) can do to their systems.

I have extensive experience with this, including quite a few bug reports and a few patches in setuptools and distribute, plus maintaining my own fork of setuptools to build and deploy my own projects, plus interviewing quite a few Python developers about why they hated setuptools, plus supporting one of them who hates setuptools even though he and I use it in a build system (https://tahoe-lafs.org).

I believe that 80% to 90% of the hatred alluded to above is due to a single issue: the fact that setuptools causes your Python interpreter to disrespect the PYTHONPATH, in violation of the documentation in http://docs.python.org/release/2.7.2/install/index.html#inst-search-path , which says:

""" The PYTHONPATH variable can be set to a list of paths that will be added to the beginning of sys.path. For example, if PYTHONPATH is set to /www/python:/opt/py, the search path will begin with ['/www/python', '/opt/py']. (Note that directories must exist in order to be added to sys.path; the site module removes paths that don’t exist.) """

Fortunately, this issue is fixable! I opened a bug report and I and a others have provided patches that makes setuptools stop doing this behavior. This makes the above documentation true again. The negative impact on features or backwards-compatibility doesn't seem to be great.

http://bugs.python.org/setuptools/issue53

Philip J. Eby provisionally approved of one of the patches, except for some specific requirement that I didn't really understand how to fix and that now I don't exactly remember:

http://mail.python.org/pipermail/distutils-sig/2009-January/010880.html

Regards,

Zooko



More information about the Python-Dev mailing list