[Python-es] Carga de librería .so 32 o 64 bits dinámicamente en python?

Alberto Curro bertothunder en gmail.com
Mar Sep 17 18:17:26 CEST 2013


Hola chicos,

 he estado "duckduckgoleando" un rato en esto, pero no encuentro una
respuesta clara; en un proyecto tengo dos posibles máquinas para ejecución
de unos scripts que tengo, una en x86 y otra es x64, ambas con CentOS
(mismas versiones, sólo la arquitectura cambia).

 Tengo unos scripts que usan una librería .so dinámica y que la cargan; el
problema es que esto debería ir en un rpm de distribución, pero quiero que
el script vaya con el fichero correcto. Una opción es empaquetar sólo el
.so correspondiente dependiente de la arquitectura, pero me gustaría que el
rpm fuese único y empaquetase ambos ficheros, y que fuese el script en
python el que seleccionase cúal enlazar.

 He estado probando con el módulo platform de forma que platform.machine()
me dice la arquitectura, e importo uno u otro módulo dependiendo de esto;
algo tal que:

import platform

if (platform.machine == 'i686'):
    from _dynamiclib import *
else:
    from _dynamiclibx64 import *


Y funciona, lo que pasa es que me parece feo de narices.

¿Alguna solución más elegante para esto? Ideas y recomendaciones son
bienvenidas :)

Saludos
Alberto
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130917/3a47d200/attachment.html>


Más información sobre la lista de distribución Python-es