импорт модуля pybind11 завершается неудачно, если я в данный момент не в каталоге DLL - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть объект pybind11, который прекрасно работает под Cmake, и если я go туда, где находится файл .pyd, введите python и сделаю

import MyPyBindModule as foo

Все работает нормально. Я могу создавать объекты из классов, определенных моим объектом pybind, и они явно вызывают.

Если, однако, я НЕ в каталоге файла .pyd, но этот каталог находится в sys.path, Я получаю

ImportError: DLL load failed while importing MyPyBindModule: The parameter is incorrect.

Я знаю, что он находит «DLL» в пути, потому что, если я не добавлю каталог в путь, я получу

ModuleNotFoundError: No module named 'MyPyBindModule'

Я что-то не так делаю? Что-то должно быть в моем% PATH%?

FWIW, Windows10, pybind 2.4.0, python 3.8.2-64 (из python .org), используя инструменты сборки MS 2019 и CMake

edit: некоторые эксперименты определили, если у меня есть каталог, в котором находится .pyd в переменной окружения PYTHONPATH, то я могу импортировать его нормально (даже без добавления в sys.path ()). Я думал, что sys.path () и PYTHONPATH взаимозаменяемы? Я полагаю, есть небольшая разница?

...