У меня большие проблемы с использованием моего кода C++ из Visual C++ (обернутого boost) в Python.
Итак, инструменты, которые я использую: Visual Studio 2010, BoostPro 1_47, Windows 7 и Python 2.7 (32-разрядная версия).
У меня есть следующий код, который прекрасно компилируется в 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);
}
Это в формате: Консольное приложение Win32 >>> Пустой проект / DLL
В «Свойствах проекта»:
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
Все это создает файл c++, но затем я не могу получить доступ это из Python
Вот что Python говорит, когда я пытаюсь использовать модуль:
">>> import hello
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import hello
ImportError: No module named hello
Итак, я думаю, мой вопрос... Как я могу заставить Python найти его???
Когда код C++ компилирует, создает файл DLL. Нужно ли менять расположение файла? Если да, то куда его поместить?
Буду очень признателен за помощь