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 uma extensão da linguagem. 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 do 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.
Ferramentas de terceiros recomendadas¶
Este guia aborda apenas as ferramentas básicas para a criação de extensões fornecidas como parte desta versão do CPython. Algumas ferramentas de terceiros oferecem abordagens mais simples e mais sofisticadas para a criação de extensões em C e C++ para Python.
Criando extensões sem ferramentas de terceiros¶
Esta seção do guia aborda a criação de extensões C e C++ sem assistência de ferramentas de terceiros. Destina-se principalmente aos criadores dessas ferramentas, em vez de ser uma maneira recomendada de criar suas próprias extensões C.
Ver também
PEP 489 – Inicialização de módulo extensão multifase
- 1. Estendendo Python com C ou C++
- 1.1. Um Exemplo Simples
- 1.2. Intermezzo: erros e exceções
- 1.3. De volta ao exemplo
- 1.4. A tabela de métodos e a função de inicialização do módulo
- 1.5. Compilação e vinculação
- 1.6. Chamando funções Python de C
- 1.7. Extraindo parâmetros em funções de extensão
- 1.8. Parâmetros nomeados para funções de extensão
- 1.9. Construindo valores arbitrários
- 1.10. Contagens de referências
- 1.11. Escrevendo extensões em C++
- 1.12. Fornecendo uma API C para um módulo de extensão
- 2. Definindo Tipos de Extensão: Tutorial
- 3. Defining Extension Types: Assorted Topics
- 4. Construindo extensões C e C++
- 5. Construindo Extensões C e C++ no Windows
Incorporando o tempo de execução do CPython em uma aplicação maior¶
Às vezes, em vez de criar uma extensão que é executada dentro do interpretador Python como a aplicação principal, é desejável incorporar o tempo de execução do CPython em uma aplicação maior. Esta seção aborda alguns dos detalhes envolvidos para fazer isso com êxito.