Невозможно импортировать пользовательскую DLL в python

Я пытаюсь выставить класс C ++ для Python сboost::pythonтак что я прохожуэтот урок, Я создал визуальную студию.dll проект, с этим исходным кодом:

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

И я построил его как 64-битную DLL. Следующий шаг в руководстве говорит:

Здесь мы написали оболочку класса C ++, которая предоставляет функции-члены greet и set. Теперь, после сборки нашего модуля в качестве разделяемой библиотеки, мы можем использовать наш класс World в Python. Вот пример сеанса Python:

>>> import hello
>>> planet = hello.World()
>>> planet.set('howdy')
>>> planet.greet()
'howdy'

Тем не менее, после запуска Python в том же каталоге и набравimport hello я получил

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

Я попытался переименовать файлы 'dll' вhello.dllа также копированиекаждый выходной файл (dll, exp, ilk, lib, а такжеpdb) чтобы%PYTHONPATH%\DLLs, но я все еще не могу импортировать модуль в Python.

Много гуглинга привело меня кЭта статья рекомендую я используюctypes импортироватьdll, Это позволяет мне загрузитьdll, но я все еще не могу назвать класс "Мир". Например:

>>> import ctypes
>>> mydll = ctypes.cdll.LoadLibrary("hello")
>>> mydll
<CDLL 'hello', handle 7fef40a0000 at 0x775ba8>
>>> hello = mydll.World()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python35\lib\ctypes\__init__.py", line 360, in __getatt
r__
    func = self.__getitem__(name)
  File "C:\Program Files\Python35\lib\ctypes\__init__.py", line 365, in __getite
m__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'World' not found
>>>

Итак пара вопросов:

Можно ли импортироватьdll в питонебез используя ctypes? Учебное пособие, кажется, указывает, что это так, но не предоставляет очень подробной информации о том, как правильно ввести dll в python.

Какие файлы мне нужны и где? Кажется, мне нужно толькоdll Файл из Visual Studio в рабочем каталоге моей оболочки Python, но это явно не работает для меня.

Почему я не могу позвонитьWorld через ctypes?

Некоторые более важные детали: я использую 64-разрядную версию Windows 7, 64-разрядную версию Python 3.5.2 и Visual Studio 2015 с Boost 1.61.

Ответы на вопрос(1)

Ваш ответ на вопрос