Hi Roman.

I recently implemented something similar to what you proposed for the
ADS Python libraries. We have 3 C modules that need to be made
available for different architectures and versions of Python.

Here is the implementation for the Looker module:
https://github.com/badzil/ADS-Python/blob/master/Looker.py

Something similar could probably be done for Invenio.

Benoit.

On Wed, Aug 3, 2011 at 12:55 PM, Roman Chyla <[email protected]> wrote:
>
> easy_install intbitset
>
> That would do pretty well (yum|apt get as well).
>
> OR, given the ticket from today about BibRank needing cythonisation;
> maybe we could just have all the c-extension modules in one place and
> retrieve them based on the Python version. Such as:
>
> from invenio.cmodules import intbitset
>
> invenio/cmodules/__init__.py  will make sure that only Python2.4 is
> available if I run Invenio with Python2.4, but I can also put there
> Python2.6 version and it will work the same
>
> While this might not touch all installations, a few people will have
> the same problems as Benoit. intbitset inside Invenio makes it
> impossible to run the same code for several sites (or even machines) -
> on my side it is the search service that uses Solr. Because of
> intbitset I had to install new Invenio (where I could just run from
> the existing code base)

I recently implemented something very similar to what you propose. In
the ADS Python libs, we have 3 C modules that need to be made
available for different computer architectures and versions of Python.
The problem is similar to the one we're discussing as the modules are
included in the Python libraries and at first it was possible to run
them only with one version of Python.

Here is the implementation for one of the C-module:
https://github.com/badzil/ADS-Python/blob/master/Looker.py

And the installation script for the C modules:
https://github.com/badzil/ADS-Python/blob/master/ads_c_modules/src/setup.py

You might also want to take a look at the utilities to determine
platform and Python version:
https://github.com/badzil/ADS-Python/blob/master/ads_c_modules/utils.py

-- 
Benoit Thiell
The SAO/NASA Astrophysics Data System
http://adswww.harvard.edu/

Reply via email to