Tengo un diseño pobre y grande (> 300 public functions
, >200 numeric constants
definido con #define
en el archivo de encabezado) que tengo que ajustar en Python. Tengo el dll
y el archivo h
. La biblioteca se actualiza anualmente, hasta ahora de una manera compatible hacia atrás (es decir, solo se agregaron funciones, una constante mantiene sus valores numéricos, etc.). Pero no tengo garantías ya que no controlo la biblioteca.Mantenibilidad de una envoltura de python de una biblioteca C
Usando ctypes
, veo dos formas de envolver esto en Python:
- Mapeo de cada función constante y al pitón, del 1 al 1
- La redefinición de la API de Python y hacer llamadas a la biblioteca .
La primera se puede hacer en un (más o menos) de forma automática desde el archivo de cabecera y por lo tanto es más fácil de mantener y actualizar, la segunda requiere una gran cantidad de código Python, pero será más fácil de usar.
Agradeceré algunas opiniones basadas en su experiencia con este tipo de problema y algunos ejemplos.
Lo siento pero tan bueno como esto es, no es realmente una pregunta clara. –
Eche un vistazo a SWIG. –
[SIP] (http://pypi.python.org/pypi/SIP/4.14) puede ser una solución interesante. –