This document is for an old version of Python that is no longer supported. You should upgrade and read the documentação do Python para versão estável atual.

# Estendendo e Incorporando o Interpretador Python

Neste documento descreveremos o desenvolvimento de módulos com C ou C++ para adicionar recursos ao interpretador Python criando novos módulos. Esses módulos podem não somente definir novas funções, mas também novos tipos de objetos e seu conjunto de métodos. O documento também descreve como incorporar o interpretador Python em outro aplicativo, de forma a utilizá-lo como sendo um idiota estendido. Por fim, estudaremos como podemos compilar e fazer a vinculação dos módulos de extensão para que estes possam ser carregados dinamicamente (em tempo de execução) pelo interpretador, caso o sistema operacional subjacente suportar esse recurso.

Este documento pressupõe conhecimentos básicos sobre Python. Para uma introdução informal à linguagem, consulte O Tutorial Python. A Referência da Linguagem Python fornece uma definição mais formal da linguagem. A Biblioteca Padrão do Python documenta os tipos, funções e módulos de objetos existentes (embutidos e escritos em Python) que dão à linguagem sua ampla gama de aplicações.

Para uma descrição detalhada de toda a API Python/C, consulte o Manual de referência da API Python/C separado.

Nota

This guide only covers the basic tools for creating extensions provided as part of this version of CPython. Third party tools may offer simpler alternatives. Refer to the binary extensions section in the Python Packaging User Guide for more information.

- 1. Estendendo Python com C ou C++
  - 1.1. Um Exemplo Simples
  - 1.2. Intermezzo: Errors and Exceptions
  - 1.3. Back to the Example
  - 1.4. The Module’s Method Table and Initialization Function
  - 1.5. Compilation and Linkage
  - 1.6. Calling Python Functions from C
  - 1.7. Extracting Parameters in Extension Functions
  - 1.8. Keyword Parameters for Extension Functions
  - 1.9. Building Arbitrary Values
  - 1.10. Contagens de referência
  - 1.11. Writing Extensions in C++
  - 1.12. Providing a C API for an Extension Module
- 2. Defining New Types
  - 2.1. The Basics
  - 2.2. Type Methods
- 3. Building C and C++ Extensions with distutils
  - 3.1. Distributing your extension modules
- 4. Construindo Extensões C e C++ no Windows
  - 4.1. Uma abordagem de livro de receitas
  - 4.2. Diferenças entre o Unix e o Windows
  - 4.3. Usando DLLs na prática
- 5. Incorporando o Python numa Outra Aplicação
  - 5.1. Very High Level Embedding
  - 5.2. Beyond Very High Level Embedding: An overview
  - 5.3. Pure Embedding
  - 5.4. Extending Embedded Python
  - 5.5. Embedding Python in C++
  - 5.6. Compiling and Linking under Unix-like systems