[Distutils] Side by side debug/non-debug eggs

P.J. Eby pje at telecommunity.com
Fri May 22 21:32:39 CEST 2009


At 12:00 PM 5/22/2009 -0400, Jean-Paul Calderone wrote:
>On Fri, 22 May 2009 11:33:54 -0400, "P.J. Eby" <pje at telecommunity.com> wrote:
>>At 09:45 AM 5/22/2009 -0400, Jean-Paul Calderone wrote:
>>>Hello all,
>>>
>>>Prior to eggs, if I wanted to have debug and non-debug versions of an
>>>extension module available, I could build and install the extension
>>>twice and the modules would happily co-exist, for example:
>>>
>>>
>>>  $ python setup.py build install
>>>  ...
>>>  $ python-dbg setup.py build install
>>>  ...
>>>  $ .../site-packages/twisted/python$ ls *.so
>>>  _epoll_d.so  _epoll.so
>>>  $ .../site-packages/twisted/python$
>>>If I then ran a debug build of Python, the debug extension would be loaded.
>>>When I ran a normal build of Python, the non-debug extension would 
>>>be loaded.
>>>However, with eggs, each new egg completely replaces the last egg.  There
>>>seems to be no possibility for side-by-side builds.  Am I overlooking a
>>>feature of eggs or of setuptools?
>>
>>Have you tried "setup.py develop"?  This builds extensions in-place 
>>in the source tree and adds the source tree to sys.path.
>
>Aware of it, but I haven't tried it.  In this use, it sounds very
>similar to "setup.py build_ext -i", which also partially solves the
>problem.  Unfortunately, some packages have their source laid out
>such that they cannot actually be used in-place, only after they've
>been installed.

The only other thing I can think of is installing in 
backward-compatibility mode, i.e. "setup.py install 
--single-version-externally-managed" (with a filename given to --record).



More information about the Distutils-SIG mailing list