[pyar] Acceder a constantes de bibliotecas C con Python usando ctypes
Ramiro Morales
cramm0 en gmail.com
Sab Oct 9 17:46:45 ART 2010
2010/10/9 Angel Guzman Maeso <shakaran en gmail.com>:
>
> Ambas opciones creo que funcionarían. El único problema es ya dependería de
> mi implementación dichos valores de la constante, por ejemplo si la
> biblioteca cambiara en un futuro sus constantes tendría que ir revisando una
> a una todas para que fueran compatibles.
Entonces no son constantes :). Fuera de broma, cualquier API que
cambia el valor de una constante de este tipo, no merece ser usada
ya sea porque se trata de una símbolo interno o porque no se está
programando bien.
>
> Me extraña que no exista alguna forma de incluir por defecto las variables y
> macros definidas en un archivo .h
Suena como a algo interesante de implementar. ¿No te animas a hacerlo
aprovechando la facilidad y la capacidad que tiene Python para leer e
interpretar archivos de texto?
> ¿como podría ver las contantes o macros que incluye dicho .so? Porque por
> ejemplo tampoco tengo un mpi.VERSION y desconozco las que incluya el .so
>
> ¿o podria compilar de algun modo esta biblioteca para que incluyera dichas
> constantes por defecto en el .so?
Lo que Daniel te está contando es que en realidad al nombre de esas constantes
definidas como macros en un .h no llega a verlas ni el compilador C.
El preprocesador le entrega eso digerido reemplazando sus ocurrencias
por su valor
en el código fuente que genera. De manera que ni el compilador C ni el enlazador
saben de la existencia de esas macros, mucho menos podrá este último
ponerlos como símbolos en el .so de salida. La estrategia 2 que te sugiere
Daniel es justamente un workaround para esto.
--
Ramiro Morales
More information about the pyar
mailing list