Ctypes de Python

Ctypes de Python
“El módulo Python Ctypes se revisará en este artículo. Al implementar el código Python, generalmente sentiremos el requisito de incluir métodos que posiblemente se crearon en otro dominio. Una de las razones más frecuentes para esto es que Python es más lento que otros lenguajes de programación como C o C++. El rendimiento se puede mejorar enormemente realizando cálculos complejos en un lenguaje rápido y eficiente."

En realidad, algunos módulos de Python, como Numpy y OpenCV, utilizan capacidades C o C ++. El módulo Python Ctypes hace que sea factible que los usuarios integren módulos como este y empleen sus métodos.

Para discutir la gestión del almacenamiento en ctypes, un par de procedimientos pueden servir como base. El hecho de que los usuarios no tengan que pasar más tiempo administrando el almacenamiento de datos han sido uno de los mejores aspectos de cambiar del idioma C al idioma de Python. El lenguaje que adquiere el almacenamiento inmediatamente debe liberarlo mientras usa Ctypes o cualquier otra técnica. También mostraremos cómo cargar una biblioteca C y llamar a sus funciones.

Ejecutaremos una variedad de códigos en Ubuntu 20.04 En este artículo. Antes de ingresar los comandos, primero accedemos a la terminal.

Ejecutaremos el comando $ nano suma.C. La palabra clave "nano" se está utilizando para abrir el archivo requerido. Aquí tenemos que abrir la suma.archivo c.

$ nano suma.C

El archivo de nano suma.C se abrirá correctamente ejecutando el comando anterior. Antes de cualquier otra cosa, construiremos nuestro_Function (). Hemos dado a esta función dos parámetros, que incluyen "num_numbers" y un puntero. El argumento "num_numbers" representa los números totales que tenemos, y el parámetro del puntero apunta al número.

En el siguiente paso, inicializamos la variable "I". Declaramos una variable "suma" y lo establecemos para que sea 0. Además, utilizaremos el bucle "para". Iteraremos sobre cada valor de i = 0 hasta que el valor de la variable de bucle "i" sea menor que num_numbers. En la última parte del bucle "para", hacemos incriminación en el valor de "i" por 1. Dentro del bucle "para", agregaremos los números [i] a la variable "suma". Al final, hemos estado usando la declaración de retorno. Esto devuelve el valor de suma. La imagen anterior muestra el código fuente del archivo.

Tocaremos Ctrl+X para dejar la suma.archivo c. Ahora, una vez más, abrimos el terminal. Comencemos a utilizar ctypes para integrar un módulo simple con solo un método en el script de Python. Sin embargo, no podemos asociar un estándar .archivo c. El comando se puede usar para crear un paquete estándar, que es lo que necesitamos hacer.

Entonces, hemos entrado en el comando cc -fpic -shared -o libsum.Entonces de la suma.C. Asignamos la extensión .C al archivo. Cualquier nombre se usará para dar el nombre del archivo, pero tenga en cuenta las extensiones mientras utiliza este comando.

En el paso, ejecutaremos el comando "Dir" para abrir el directorio "Libsum.SUMA SUMA.C".

$ Dir

Después de abrir el directorio, crearemos un nuevo archivo denominado prueba.py. Nano se aplicaría para abrir ese archivo.

$ nano prueba.py

Después de abrir la prueba.archivo py, comenzamos la codificación. Ctypes debe integrarse en el código al inicio. Luego creamos una variable "suma", que viene por los ctypes.CDLL ("./Libra.entonces"). Tenemos que tener cuidado con los datos adecuadamente; CTypes permite a los usuarios importar una biblioteca estándar y recuperar funciones explícitamente de eso también. Esto requiere que el programa se llame dentro de la misma ruta que la biblioteca estándar y que ambos ya estén ubicados aquí. Cuando incorporamos el .Archivo PY Con la biblioteca estándar, ha habido varias especificaciones del sistema operativo con respecto a los directorios de búsqueda de la biblioteca.

Además, llamamos a la suma de la función.Nuestra función.argrtpes. Establecemos el valor de esta función como ctypes.c_int, ctypes.Puntero (ctypes.c_int). Luego definimos nuestro_Function (). Hemos proporcionado los números como argumentos. Creamos una variable global denominada _sum. Declaramos una variable num_numbers. Dentro de esta variable, tenemos que averiguar la longitud de los números definidos, por lo que utilizaremos el método Len (). Creamos una matriz. Esta matriz se almacena en una variable "Array_Type". Especificamos el valor como ctypes.c_int * num_numbers a la variable array_type.

Ahora inicializamos una nueva variable, "resultado". Aquí llamamos la suma de la función.nuestro_function (Stypes.c_int (num_numbers). Del mismo modo, proporcionamos el puntero del número (*entumecido) a la instrucción Array_Type. Para finalizar el código, escribimos la declaración de retorno. Dentro de esta función, pasamos una variable "resultado" como su parámetro. El tipo de datos de la variable de resultado es un entero. La imagen anterior muestra el código fuente del archivo.

Usaremos esto para ejecutar el programa desde cualquier archivo. Después de que se haya importado la biblioteca, esto se guardará en un atributo de Python que contiene procedimientos para cada módulo definido.

Cambiemos el nombre de la prueba.archivo py con la suma.archivo py.

Prueba de $ MV.suma py.py

Crearemos un nuevo archivo, "Prueba.py ", y luego se abrirá usando la palabra clave nano antes del nombre del archivo.

$ nano prueba.py

La prueba.El archivo PY se abrirá. Ahora importaremos la suma. En la siguiente línea, llamamos a la función print (). Dentro de esta función llamamos la suma del método.our_function (). El nuestro_function () contiene los primeros cinco valores numéricos como sus argumentos. La imagen anterior muestra el código fuente del archivo.

Aquí ejecutaremos el archivo "prueba.py ". Escribimos el comando $ python3.py. Este comando se ejecutará y el resultado se mostrará en el terminal.

Prueba de $ python3.py

Conclusión

Cómo usar Ctypes de Python ha sido cubierto en este artículo. Ejecutamos los comandos en Ubuntu 20.04. Hemos creado y abierto una "suma.archivo c "con la ayuda del término nano. En este archivo, hemos construido nuestro_Function (), y luego hemos estado definiendo nuestro_Function. A continuación, abrimos la prueba.archivo py. Dentro de este archivo, podemos llamar a nuestro_function () y luego utilizar esta función.