El 17 de septiembre de 2013 18:28, Carlos Zuniga <carlos....@gmail.com>escribió:
> 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 *` ;) > Jajajajaja, acepto la crítica, era un mal ejemplo... aunque si te echas un vistazo a, por ejemplo, pySQLite verás que se hacen un import * de la librería dinámica así, "a pelo" :) Gracias por el truco, no se me había ocurrido un loader intermedio a modo de beautifier ;-) Saludos > > 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/ >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/