Как импортировать dll-модуль, написанный на C ++, в Python, используя PyBind11 - PullRequest
1 голос
/ 01 февраля 2020

У меня были проблемы с тем, чтобы pybind11 работал так, как описано здесь .

Мне удалось создать пример DLL в Visual Studio 2019, но я не понимаю, как это сделать. фактически получить скрипт Python для распознавания модуля с помощью оператора import.

Это тестовый модуль, написанный на C ++ (компилируется без проблем):

#include <pybind11/pybind11.h>

int add(int i, int j) {
    return i + j;
}


PYBIND11_MODULE(example, m) {
    m.doc() = "pybind11 example plugin"; // optional module docstring

    m.def("add", &add, "A function which adds two numbers");

Это мой тестовый Python скрипт, который пытается вызвать модуль:

import example
print(example.add(1,2))

Приведенное выше просто не может идентифицировать модуль - т.е. «ModuleNotFoundError: нет модуля с именем« example »»

Я поместил мой Python скрипт в ту же папку, что и сборка DLL (содержащая различные файлы - .obj, .iobj, .lib et c.)

Я запускаю Python 3,8 на Windows 10, если это имеет значение.

Я избивал мой против Буста. Python весь день, прежде чем, наконец, найду pybind11, но я не могу заставить его работать !!

...