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:
- Creación de un archivo C (extensión .c) con las funciones requeridas
- Creación de un archivo de biblioteca compartida (extensión .so) utilizando el compilador de C.
- En el programa Python, cree una instancia ctypes.CDLL a partir del archivo compartido.
- 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.