Пример Hello World на Boost Python не работает в Python

У меня большие проблемы с использованием моего кода 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. Нужно ли менять расположение файла? Если да, то куда его поместить?

Буду очень признателен за помощь

7
задан K DawG 18 September 2016 в 08:21
поделиться