2013/9/17 Alberto Curro <bertothun...@gmail.com>: > 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 :) >
Si solo quieres que se vea bonito en tu script, coloca ese código en dynamiclib.py para que importe _dynamiclib o _dynamiclibx64. Y luego desde tu script `from dynamiclib import xxx`. En fin que no me parece tan poco elegante un import condicional, menos elegante es el `import *` ;) Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/