¡Buenas noches! A veces un lenguaje de programación como python (aunque potente y versátil) puedes necesitar mas potencia o accesos a librerías del sistema. Para hacer uso de una librería dinámica tipo .DLL (windows) o .SO (linux) puedes hacerlo de la siguiente forma:
En este caso vamos a crear una librería de prueba en C para linux (el mismo codigo de C y python se puede usar en Windows).
- Primer paso, creamos la libreria con el siguiente código de lenguaje C :
user@host:~$ cat testintegration.c #include <stdio.h> #include <stdlib.h> #ifdef _WIN32 # define DLL_EXPORT __declspec(dllexport) #else # define DLL_EXPORT #endif DLL_EXPORT int sum(int a, int b) { int res = 0; res = a + b; printf("ResC: %d\n",res) ; return res; }
- Para compilarlo usamos el siguiente comando (sustituir librería por el nombre que se quiera):
user@host:~$ gcc -Wall -Wextra -O -ansi -pedantic -fPIC -shared LIBRERIA.c -o /tmp/LIBRERIA.so
- Para usarla en este lenguaje solamente hay que llamarla importando la clase cdll del modulo ctypes, depués de usar el método LoadLibrary de la clase cdll, podremos llamar a los métodos de la librería importada:
user@host:~$ python Python 2.7.9 (default, Jun 29 2016, 13:08:31) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes import cdll; >>> mydll = cdll.LoadLibrary('/tmp/LIBRERIA.so') >>> mydll.sum(2,'a') ResC: 1456018974 1456018974
Mas información en http://wolfprojects.altervista.org/articles/dll-in-c-for-python/
Muy buen articulo