У меня есть объект 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 взаимозаменяемы? Я полагаю, есть небольшая разница?