Requisito previo: uso de códigos C en Python | Serie 1
En el artículo anterior , hemos discutido cómo acceder al código C en Python. Ahora, veamos cómo acceder a las funciones de C.
Código #1: Acceso a funciones de C con Python
import work print ("GCD : ", work.gcd(35, 42)) print ("\ndivide : ", work.divide(42, 8)) print ("\navg : ", work.avg([1, 2, 3])) p1 = work.Point(1, 2) p2 = work.Point(4, 5) print ("\ndistance : ", work.distance(p1, p2))
Producción :
GCD : 7 divide : (5, 2) avg : 2.0 distance : 4.242640687119285
Tema ?
Ahora, el trabajo realizado anteriormente tiene el problema de que para el empaquetado general del código C y Python juntos, usando ctypes para acceder al código C que se ha compilado, uno debe asegurarse de que la biblioteca compartida se coloque en una ubicación, donde el work.py
módulo puede Encuéntralo. Una posibilidad es colocar el libsample.so
archivo resultante en el mismo directorio que el código de soporte de Python.
Por lo tanto, si la biblioteca C está instalada en otro lugar, la ruta debe ajustarse en consecuencia. Si está instalado como una biblioteca estándar en la máquina, entonces ctypes.util.find_library()
se puede usar la función.
Código #2: Ejemplo de ruta
from ctypes.util import find_library find_library('m') find_library('pthread') find_library('sample')
Producción :
/usr/lib/libm.dylib /usr/lib/libpthread.dylib /usr/local/lib/libsample.so
Nuevamente, ctypes no funcionará en absoluto si no puede ubicar la biblioteca con el código C. ctypes.cdll.LoadLibrary()
se utiliza para cargar la biblioteca C, una vez que se conoce su ubicación.
_mod = ctypes.cdll.LoadLibrary(_path)
Publicación traducida automáticamente
Artículo escrito por manikachandna97 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA