Tengo un gran problema al utilizar mi código de C++ desde Visual C++ (envuelto por boost) en Python.Ejemplo de Boost Python Hello World que no funciona en Python
Muy bien, entonces las herramientas que estoy usando son: Visual Studio 2010, BoostPro 1_47, Windows 7 y Python 2.7 (32 bits).
Tengo el siguiente código que compila bien en Visual Studio 2010:
#define BOOST_PYTHON_STATIC_LIB
#include <boost/python.hpp>
using namespace boost::python;
struct World
{
void set(std::string msg) { this->msg = msg; }
std::string greet() { return msg; }
std::string msg;
};
BOOST_PYTHON_MODULE(hello)
{
class_<World>("World")
.def("greet", &World::greet)
.def("set", &World::set);
}
Está en el formato: Aplicación de consola Win32 >>> Proyecto vacío/DLL.
En "Propiedades del proyecto":
VC++ DIRECTORIES:
I added:
>>> INCLUDE DIRECTORIES: C:\Program Files\boost\boost_1_47;C:\Python27\include .
>>> LIBRARY DIRECTORIES: C:\Program Files\boost\boost_1_47\lib;C:\Python27\libs
Todo esto hace que el C++ acumulación de archivos, pero entonces no se puede acceder a él desde Python.
Esto es lo que dice Python cuando trato de utilizar el módulo:
">>> import hello
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import hello
ImportError: No module named hello
así que supongo que mi pregunta es ... ¿Cómo puedo obtener Python para encontrarlo ???
Cuando se compila el código C++ crea un archivo DLL. ¿Debo cambiar la ubicación del archivo? Si es así, ¿dónde debería ponerlo?
Su ayuda sería muy apreciada
Gracias Constantinius! : D Finalmente conseguí que esto funcionara después de horas, horas y horas de intentar hacer que boost.python hiciera lo suyo. – user1449530
¿puede proporcionar una receta de lo que ha hecho para tener éxito? – Noam
También tuve que agregar un directorio que contenía archivos Boost Python * .lib y * .dll a PATH –