Mam wielki kłopot używając mojego kodu C++ z Visual C++ (zawijany przez boost) w Pythonie.Przykład Boost Python Hello World nie działa w Pythonie
Dobra, więc używam narzędzi, którymi się posługuję: Visual Studio 2010, BoostPro 1_47, Windows 7 i Python 2.7 (32-bit).
Mam następujący kod, który kompiluje ładnie w 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);
}
Jest w formacie: Win32 Console Application >>> Empty Project/DLL.
W „Właściwości projekt”:
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
Wszystko to sprawia, że C++ kompilacji ale wtedy nie mogę do niego dostęp z poziomu Pythona.
To co Python mówi, gdy próbuję użyć modułu:
">>> import hello
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import hello
ImportError: No module named hello
Więc myślę, że moje pytanie jest ... Jak mogę dostać Python go znaleźć ???
Po skompilowaniu kodu C++ tworzy plik DLL. Czy muszę zmienić lokalizację pliku? Jeśli tak, to gdzie mam go umieścić?
Twoja pomoc będzie bardzo mile widziane
Dziękuję Constantinius! : D W końcu zmusiłem to do pracy po godzinach i godzinach próbowania pobierania boost.python. – user1449530
czy możesz podać przepis na to, co zrobiłeś, aby odnieść sukces? – Noam
Musiałem również dodać do Boost Pythona pliki * .lib i * .dll do katalogu PATH –