2010-06-06 17 views
12

Estoy intentando escribir un contenedor de Python para poker-eval, una biblioteca estática c. Toda la documentación que puedo encontrar en ctypes indica que funciona en bibliotecas compartidas/dinámicas. ¿Hay un tipo de bibliotecas estáticas?ctypes para bibliotecas estáticas?

Conozco cython, pero ¿debo usar eso o recompilar el poker-eval en una biblioteca dinámica para poder usar ctypes?

Gracias,

Mike

Respuesta

8

La elección es realmente depende de ti. Si tiene la capacidad de volver a compilar la biblioteca como un objeto compartido, sugeriría eso, porque minimizará el código que no es python que debe mantener. De lo contrario, querrá construir un módulo de extensión de Python que enlace a la biblioteca estática y envuelva las funciones que expone.

Mencionaste Cython; aquí está la página del manual correspondiente si ir por ese camino:

http://docs.cython.org/src/tutorial/clibraries.html

También hay TRAGO y Pyrex.

1

No puedo decir con certeza que no haya módulos, pero las ventajas de las bibliotecas dinámicas (utiliza menos espacio, puede actualizar sin recompilar programas dependientes) son tales que probablemente sea mejor que lo haga.

Cuestiones relacionadas