Cómo llamar a funciones C desde Python

Podemos llamar a una función C desde un programa Python usando el módulo ctypes .

Llamar a una función C desde Python

Implica los siguientes pasos:

  1. Creación de un archivo C (extensión .c) con las funciones requeridas
  2. Creación de un archivo de biblioteca compartida (extensión .so) utilizando el compilador de C.
  3. En el programa Python, cree una instancia ctypes.CDLL a partir del archivo compartido.
  4. Por último, llame a la función C utilizando el formato {CDLL_instance}.{function_name}({function_parameters}).

Paso 1: Crear un archivo C con algunas funciones

#include stdio.hint square(int i) {return i * i;}

Tenemos una función C simple que devolverá el cuadrado de un entero. He guardado este código de función en el archivo llamado my_functions.c.

Paso 2: Creación del archivo de biblioteca compartida

Podemos usar el siguiente comando para crear el archivo de biblioteca compartida a partir del archivo fuente C.

$ cc -fPIC -shared -o my_functions.so my_functions.c

Paso 3: Llamar a una función C desde un programa Python

 from ctypes import * so_file = "/Users/pankaj/my_functions.so" my_functions = CDLL(so_file)  print(type(my_functions))class 'ctypes.CDLL'  print(my_functions.square(10))100 print(my_functions.square(8))64 

Si cambia el archivo del programa C, tendrá que regenerar el archivo de biblioteca compartida.

Conclusión

La implementación predeterminada de Python está escrita en programación C y se llama CPython. Por lo tanto, no es muy raro usar funciones C en un programa Python. En este tutorial, aprendimos a llamar fácilmente a funciones C en un programa Python.

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

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

Scroll al inicio