Mostrando entradas con la etiqueta Capítulo 15. Mostrar todas las entradas
Mostrando entradas con la etiqueta Capítulo 15. Mostrar todas las entradas

jueves, 22 de febrero de 2018

Receta Python No. 15-4: Invocar Código C desde Python

1. Problema

Invocar código del lenguaje de programación C desde un programación escrito en Python.

2. Solución

La API estándar de Python permite realizar un enlace entre Python y C. Esto es posible gracias Cython (Bernard, 2016).

3. Código Python

Para referenciar un archivo con código C se utilizan la combinación de las palabras clave cdef extern from. Esto debe realizarse desde un archivo con extensión .pyx:

cdef extern from "saludo.c":
    void saludar()


El contenido del archivo saludo.c:

static void saludar(){
    printf("Salut !");
}

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 15-3: Invocar Python desde C

1. Problema

Invocar código Python desde un programa escrito en lenguaje de programación C.

2. Solución

En la librería estándar de Python se incluye un archivo de encabezado con nombre Python.h. Este archivo se puede referenciar desde un código C (Bernard, 2016).

3. Código Python


En laS línea 5 y 7 se invocan las funciones Py_Initialize() y Py_Finalize(). Estas funciones demarcan una región para la ejecución de código Python.


También es posible ejecutar un archivo entero con código Python:



4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

miércoles, 21 de febrero de 2018

Receta Python No. 15-2: Usar Tipos Estáticos en Python

1. Problema

Especificar un tipo de dato a un objeto para mejorar el rendimiento de la ejecución de una aplicación.

2. Solución

Una vez instalado el módulo Cython, y las herramientas extras -como el compilador de C-, es posible definir tipos de datos para objetos (Bertrand, 2016). Esto se logra a través de la palabra clave cdef.

3. Código Python


Luego, en la línea de comandos escribir:

$ cython definir_tipo_dato.pyx


Esto producirá un archivo con código fuente C llamado definir_tipo_dato.c [enlace alternativo].


Finalmente, el archivo generado podrá ser compilado:

$ gcc -shared -o definir_tipo_dato.so definir_tipo_dato.c `python3-config --includes`

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 15-1: Compilar Código Python

1. Problema

Compilar código Python en C.

2. Solución

El paquete Cython cuenta con la funcionalidad para compilar código Python en código del lenguaje de programación C.


Es necesario tener instalado un compilador de C en el sistema para proceder con los siguientes pasos, y las siguientes recetas Python (Bertrand, 2016).

3. Código Python

Primero hay que realizar una instalación del paquete Cython:

pip install --user cython


Luego, escribir un programa con código Python, y guardar el archivo con extensión .pyx:


Archivo Python saludo.pyx [enlace alternativo]:

def saludar():
    print('Salut')


Se debe iniciar el intérprete de línea de comandos para ejecutar las siguientes sentencias:

$ python
>>> import pyximport
>>> pyximport.install()
>>> import saludo
>>> saludar()
Salut

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O