Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]

Extendendo Python com C++ usando Boost






Uma opção para escrever módulos em C++ e chamar em Python é utilizar o Boost.Python, uma biblioteca que permite a interoperabilidade entre as duas linguagens.

Você pode acessar os tutoriais e recursos disponíveis na página oficial.

Instalando o Boost.Python no Linux

Você pode baixar a biblioteca para iniciar seu desenvolvimento em http://www.boost.org/. Para aqueles que utilizam Linux, podem ser utilizados os seguintes comandos:

$ sudo apt-get install libboost-python-dev
$ sudo apt-get install python-dev

Exemplo de utilização

Em primeiro lugar devemos criar um arquivo em C++ com o código que deve ser chamado. Como exemplo criaremos um código que exibe "Oi" e um nome digitado pelo usuário chamado de "olamodulo.cpp":

#include <iostream>
using namespace std;
void diz_ola(const char* nome) {
cout << "Olá " << nome << "!n";
}
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
using namespace boost::python;
BOOST_PYTHON_MODULE(ola)
{
def("diz_ola", diz_ola);
}

Agora deveremos criar um arquivo chamado "setup.py" que contará com o seguinte código:

#!/usr/bin/env python
from distutils.core import setup
from distutils.extension import Extension
setup(name="PackageName",
ext_modules=[
Extension("ola", ["olamodulo.cpp"], #nome do módulo e nome do arquivo
libraries = ["boost_python"])
])

Agora poderemos criar o módulo, digitando no ''shell'':

python setup.py build

Se tudo foi feito de forma correta, no diretório onde estão seus arquivos é gerado um novo diretório chamado build/lib.linux-i686-2.4. Dentro deste diretório estará o arquivo ola.so que é o módulo que você poderá utilizar para chamar em Python. Para testar, entre no diretório do arquivo, chame Python e digite:

import ola
ola.diz_ola("Rodrigo") #chamo o módulo e o nome da função, passando parâmetro
Rodrigo




Para citar este artigo

REVISTABW. Extendendo Python com C++ usando Boost.Revista Brasileira de Web: Tecnologia. Disponível em http://www.revistabw.com.br/revistabw/extendendo-python-com-c-usando-boost/. Criado em: 29/04/2013. Última atualização: 24/07/2015. Visitado em: 23/11/2017


Procurando mais conteúdos ? Utilize o campo de busca abaixo



Leia +



Você também deveria ler


O conteúdo da Revista Brasileira de Web é licenciado sob uma Licença Creative Commons Atribuição 3.0 Brasil, exceto quando especificado claramente em contrário. Este é um site de conteúdos diversos e dicas gerais e não substitui a consultoria de um profissional devidamente qualificado. Isto significa que os assuntos aqui abordados possuem caráter geral e podem não ser adequados no seu caso. Leia nossos Termos de Uso e Privacidade.