Articles of boost python

Cómo comstackr la biblioteca estática con -fPIC desde boost.python

De forma predeterminada, libboostpython.a se comstack sin -fPIC . Pero tengo que hacer una extensión de python y es una biblioteca dinámica con -fPIC que enlaza con bibliotecas estáticas. ¿Cómo puedo comstackr una biblioteca estática ( libboostpython.a ) con -fPIC de boost.python ?

pase la callback de python a c ++ usando boost :: python

Quiero pasar la callback de mi código de python a c ++ Quiero que mi código se vea algo como esto: En C ++: typedef void (*MyCallback_t) (CallbackInfo); class MyClass {… void setcallback(MyCallback_t cb); … } Y para usarlo en python: import mylib def myCallback(mylib_CallbackInfo): … t = mylib.MyClass() t.setcallback(myCallback) Vi algunos temas cerca de […]

Boost.Python: Cómo exponer std :: unique_ptr

Soy bastante nuevo en boost.python y estoy tratando de exponer el valor de retorno de una función a python. La firma de la función se ve así: std::unique_ptr someFunc(const std::string &str) const; Al llamar a la función en Python, aparece el siguiente error: TypeError: No to_python (by-value) converter found for C++ type: std::unique_ptr<Message, std::default_delete > […]

boost :: Python Export Custom Exception

Actualmente estoy escribiendo una extensión de C ++ para Python usando Boost.Python. Una función en esta extensión puede generar una excepción que contiene información sobre el error (más allá de una cadena legible por el hombre que describe lo que sucedió). Esperaba poder exportar esta excepción a Python para poder capturarla y hacer algo con […]

Inicializando objetos Cython con objetos C existentes

Modelo C ++ Digamos que tengo las siguientes estructuras de datos en C ++ que deseo exponer a Python. #include #include struct mystruct { int a, b, c, d, e, f, g, h, i, j, k, l, m; }; typedef std::vector<std::shared_ptr> mystruct_list; Potenciar Python Puedo envolverlos de manera bastante efectiva usando boost :: python con […]

Llamando funciones de Python desde C ++

Estoy tratando de lograr las funciones de llamada Python desde C ++. Pensé que podría lograrse a través de punteros de función, pero no parece ser posible. He estado usando boost.python para lograr esto. Digamos que hay una función definida en Python: def callback(arg1, arg2): #do something return something Ahora necesito pasar esta función a […]

¿Cómo escribir una envoltura sobre funciones y funciones miembro que ejecuta algún código antes y después de la función envuelta?

Estoy tratando de escribir alguna clase de envoltura o función que me permita ejecutar algo de código antes y después de la función de envoltura. float foo(int x, float y) { return x * y; } BOOST_PYTHON_MODULE(test) { boost::python::def(“foo”, ); } Idealmente, la envoltura debe ser genérica, trabajar para funciones y funciones miembro por igual, […]

Boost y Python 3.x

¿Cómo trata boost.python con Python 3? ¿Es Python 2 solamente?

Símbolo de impulso de Python no definido: boost :: python :: detail :: init_module

Recibo un error de símbolo no definido al intentar importar una extensión comstackda con boost python, y el símbolo debe incluirse en la biblioteca boost. Estoy usando Boost 1.46.1, Python 3.1.2 y GCC 4.4.5. He construido impulso utilizando: $ ./bootstrap.sh –with-python-version=3.1 $ sudo ./bjam -j4 install Luego compilé la siguiente biblioteca trivial de Boost Python: […]

Boost.Python call by reference: TypeError: no se encontró el convertidor to_python (por valor) para el tipo C ++

Estoy tratando de exponer mis clases de C ++ a Python usando Boost.Python. Aquí hay una versión simplificada de lo que estoy tratando de hacer: Tengo una clase A que deriva de boost :: noncopyable y una segunda clase B con un método que toma una referencia a A como argumento. class A : boost::noncopyable […]