[egenix-users] egenix-mx-base 3.1.3 on Ubuntu 9.10

M.-A. Lemburg mal at egenix.com
Mon Jan 4 22:34:14 CET 2010


Tim Cook wrote:
> Hi Marc-Andre,
> Thanks for the prompt reply.
> 
> On Mon, 2010-01-04 at 20:10 +0100, M.-A. Lemburg wrote:
> 
>> Which version of Python and setuptools are you using ?
> 
> Python 2.6.4 and Python 2.6.2 depending on the developer.
> Everyone gets the same pinned version of setuptools: 
> setuptools = 0.6c11 
> 
>>
>>> Could you please "unhide" version 3.1.2 on Pypi until the issue is
>>> resolved?  http://wiki.python.org/moin/CheeseShopTutorial This way I can
>>> pin the version to 3.1.2
>>
>> This we'd rather not do, since 3.1.2 and previous versions have
>> a serious bug in mxBeeBase on Mac OS X and BSD platforms.
> 
> Hmmm, okay.
> 
>> All of the above are compiler warnings, so I guess the problem
>> has something to do with setuptools...
> 
> Okay.  Any ideas?  
> We do have a temporary work around right now by unzipping the downloaded
> file (from the egenix website) into the virtual environment and then
> using setup.py install to put it inside the project.  however this is
> kind of ugly compared to getting an egg automatically. :-)

I've now tracked this down:

The "problem" is that egenix-mx-base now provides it's own
implementation of bdist_egg which easy_install use to build
an egg from the source tarball.

Due to the monkey patching applied by setuptools, a lot of
distutils internals get modified in non-standard ways and while
our bdist_egg works without problems to build the egg (e.g.
if run manually), easy_install appears to expect some side
effects caused by its various patched distutils commands
which our version does not provide.

We could provide egg files via PyPI as well, but the problem
with that is ... again easy_install: it doesn't know about the
difference between UCS2 and UCS4 builds of Python and so the
eggs cannot use names which include this important build detail.

While the system default Python installations typically use
UCS4 on Linux, custom builds (as in e.g. Zope and Plone)
often use the Python default UCS2.

Since we're already experimenting with our own PyPI index
to address the UCS2/UCS4 problem, you might want to use that
for the time being...

For UCS2 builds:
python easy_install -i http://downloads.egenix.com/python/index/ucs2/ egenix-mx-base

For UCS4 builds:
python easy_install -i http://downloads.egenix.com/python/index/ucs4/ egenix-mx-base

If you're using buildout, just add the correct index URL for
the index to your "find-links = ..." section in buildout.cfg.
See e.g.
http://plone.org/documentation/manual/developer-manual/managing-projects-with-buildout/understanding-buildout.cfg
for some details on how this works.

In the next release of egenix-mx-base, we'll also add some
support code to mxSetup.py which disables our own bdist_egg
command if we find that setuptools has hooked up on
distutils ;-)

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jan 04 2010)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/



More information about the egenix-users mailing list