Boost Python Hallo Welt Beispiel funktioniert nicht in Python

Ich habe sehr viel Mühe mit meinem C ++ – Code aus Visual C ++ (eingewickelt von Boost) in Python.

Alright, also die Werkzeuge, die ich verwende, sind: Visual Studio 2010, BoostPro 1_47, Windows 7 und Python 2.7 (32-Bit).

Ich habe den folgenden Code, der schön in Visual Studio 2010 kompiliert:

#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); } 

Es ist im Format: Win32-Konsolenanwendung >>> Leeres Projekt / DLL.

In "Projekteigenschaften":

 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 

All dies macht die C ++ – Datei zu bauen, aber dann kann ich nicht von Python zugreifen.

Dies ist, was Python sagt, wenn ich versuche, das Modul zu benutzen:

 ">>> import hello Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> import hello ImportError: No module named hello 

Also ich denke, meine Frage ist … Wie bekomme ich Python, um es zu finden ???

Wenn der c ++ – Code kompiliert, erzeugt er eine DLL-Datei. Muss ich den Speicherort der Datei ändern? Wenn ja, wo soll ich es sagen?

Ihre Hilfe wäre sehr dankbar

One Solution collect form web for “Boost Python Hallo Welt Beispiel funktioniert nicht in Python”

AFAIK musst du die Erweiterung der DLL auf .pyd oder sonst kann Python es nicht laden. Ich denke, Sie können eine Build-Option, um automatisch die Erweiterung in VS, aber ich weiß nicht sicher.

PYTHONPATH sicher, dass die erstellte Erweiterung irgendwo auf dem PYTHONPATH , der Pfad, python wird nach Modulen suchen, um zu laden.

Python ist die beste Programmiersprache der Welt.