Usando códigos C en Python | conjunto 2

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.pymódulo puede Encuéntralo. Una posibilidad es colocar el libsample.soarchivo 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *