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 de 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¶
This guide only covers the basic tools for creating extensions provided as part of this version of CPython. Third party tools like Cython, cffi, SWIG and Numba offer both simpler and more sophisticated approaches to creating C and C++ extensions for Python.
Ver também
- Guia do Usuário de Empacotamento do Python: Extensões Binárias <https://packaging.python.org/guides/packaging-binary-extensions/>`_
O Guia do Usuário de Empacotamento do Python não abrange apenas várias ferramentas disponíveis que simplificam a criação de extensões binárias, mas também discute os vários motivos pelos quais a criação de um módulo de extensão pode ser desejável em primeiro lugar.
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.
- 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ências
- 1.11. Writing Extensions in C++
- 1.12. Providing a C API for an Extension Module
- 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.