Ampliación e incrustación del intérprete de Python¶
Este documento describe cómo escribir módulos en C o C++ para extender el intérprete de Python con nuevos módulos. Esos módulos no solo pueden definir nuevas funciones sino también nuevos tipos de objetos y sus métodos. El documento también describe cómo incrustar el intérprete de Python en otra aplicación, para usarlo como un lenguaje de extensión. Finalmente, muestra cómo compilar y vincular módulos de extensión para que puedan cargarse dinámicamente (en tiempo de ejecución) en el intérprete, si el sistema operativo subyacente admite esta característica.
Este documento asume conocimientos básicos sobre Python. Para una introducción informal al lenguaje, consulte Tutorial de Python. Referencia del Lenguaje Python da una definición más formal del lenguaje. La Biblioteca Estándar de Python documenta los tipos de objetos, funciones y módulos existentes (tanto incorporados como escritos en Python) que le dan al lenguaje su amplio rango de aplicaciones.
Para obtener una descripción detallada de toda la API de Python/C, consulte el apartado separado Manual de referencia de la API en C de Python.
Herramientas de terceros recomendadas¶
Esta guía solo cubre las herramientas básicas para crear extensiones proporcionadas como parte de esta versión de CPython. Herramientas de terceros como Cython, cffi, SWIG y Numba ofrecen enfoques más simples y sofisticados para crear extensiones C y C++ para Python.
Ver también
- Guía del Usuario de Empaquetamiento de Python: Extensiones binarias
La Guía del Usuario de Empaquetamiento de Python no solo cubre varias herramientas disponibles que simplifican la creación de extensiones binarias, sino que también discute las diversas razones por las cuales crear un módulo de extensión puede ser deseable en primer lugar.
Crear extensiones sin herramientas de terceros¶
Esta sección de la guía cubre la creación de extensiones C y C++ sin la ayuda de herramientas de terceros. Está destinado principalmente a los creadores de esas herramientas, en lugar de ser una forma recomendada de crear sus propias extensiones C.
- 1. Extendiendo Python con C o C++
- 1.1. Un ejemplo simple
- 1.2. Intermezzo: errores y excepciones
- 1.3. De vuelta al ejemplo
- 1.4. La tabla de métodos del módulo y la función de inicialización
- 1.5. Compilación y Enlazamiento
- 1.6. Llamando funciones Python desde C
- 1.7. Extracción de parámetros en funciones de extensión
- 1.8. Parámetros de palabras clave para funciones de extensión
- 1.9. Construyendo Valores Arbitrarios
- 1.10. Conteo de Referencias
- 1.11. Escribiendo Extensiones en C++
- 1.12. Proporcionar una API C para un módulo de extensión
- 2. Definición de tipos de extensión: Tutorial
- 3. Definición de tipos de extensión: temas variados
- 4. Construyendo Extensiones C y C++
- 5. Creación de extensiones C y C++ en Windows
Incrustar el tiempo de ejecución de CPython en una aplicación más grande¶
A veces, en lugar de crear una extensión que se ejecute dentro del intérprete de Python como la aplicación principal, es conveniente incorporar el tiempo de ejecución de CPython dentro de una aplicación más grande. Esta sección cubre algunos de los detalles involucrados en hacerlo con éxito.