У меня есть код, написанный на c ++, который я пытаюсь использовать в python, не переписывая снова весь код на python, и я использую Pybind11 для создания модуля python для этого. Я пытаюсь добиться этого в Microsoft Visual Studio 2015, следуя этому руководству здесь https://pybind11.readthedocs.io/en/stable/basics.html
В визуальной студии я делал следующие вещи. 1) Загрузил Pybind11 с https://codeload.github.com/pybind/pybind11/zip/master
2) Разархивировал файл
3) В Visual Studio запущен новый пустой проект на C ++.
4) Добавлена папка включения моего интерпретатора Python (C: / python27 / include) и Pybind11 (C: / Pybind11 / include) в каталоги VC ++> каталоги включения
5) Добавлены дополнительные зависимости (C: \ Python27 \ libs \ python27.lib) в Linker> input> Additional dependencies
6) Чтобы использовать выходной файл в Python, мне нужен файл .pyd, поэтому я изменил здесь Свойства конфигурации> Общие> Целевое расширение: .pyd
7) Измените настройки проекта по умолчанию> тип конфигурации на динамическую библиотеку (.dll)
Итак, я могу создать свой проект и сгенерировать файл .pyd, но при импорте этого модуля я получаю следующую ошибку: ImportError: динамический модуль не определяет функцию инициализации (initProject11)
Я искал эту ошибку и получил эту ссылку http://pybind11.readthedocs.io/en/stable/faq.html, но я не смог найти свое решение.
Итак, я ищу решение вышеуказанной проблемы. Заранее большое спасибо.
вот мой код файла CPP
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
namespace py = pybind11;
PYBIND11_PLUGIN(example) {
py::module m("example", "pybind11 example plugin");
m.def("add", &add, "A function which adds two numbers");
return m.ptr();
}
PYBIND11_PLUGIN(...) {...}
. - person pschill   schedule 12.07.2017example.pyd
илиexample.*.pyd
. - person pschill   schedule 12.07.2017example.pyd
и посмотреть, работает ли это? - person pschill   schedule 12.07.2017Project11.pyd
, который был создан ранее, переименуйте его вexample.pyd
, а затем импортируйте его в python. - person pschill   schedule 12.07.2017