ImportError: не удалось загрузить DLL с помощью pybind11 и PCLC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ImportError: не удалось загрузить DLL с помощью pybind11 и PCL

Сообщение Anonymous »

Я использую pybind11 для создания оболочки Python для небольшого класса C++.

Я получаю следующую ошибку при импорте DLL (запускаю python -v, чтобы отобразить Traceback ):

Код: Выделить всё

>>> from a_py import *
Traceback (most recent call last):
File "", line 1, in 
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 657, in _load_unlocked
File "", line 556, in module_from_spec
File "", line 1101, in create_module
File "", line 219, in _call_with_frames_removed
ImportError: DLL load failed while importing a_py: The specified module could not be found.
В классе всего два члена — типы из библиотеки PCL:

Код: Выделить всё

class A
{
pcl::NormalEstimation< pcl::PointXYZ, pcl::Normal> normalEstimation_;
pcl::PointCloud
::Ptr normals_;
};
Если я удалю первый элемент, я смогу успешно импортировать модуль из DLL.

Это код pybind11:

Код: Выделить всё

namespace py = pybind11;

PYBIND11_MODULE(a_py, m)
{
py::class_(m, "A");
}
PCL находится с помощью CMake: find_package(PCL REQUIRED)

Это происходит в обеих Windows и Linux с последней версией PCL (1.10) и более старыми версиями.

(Добавление #define PCL_NO_PRECOMPILE перед #includes не помогает.)

Обновление:
Я открыл проблему на GitHub по этому поводу, поскольку это похоже на ложную внутреннюю зависимость во время выполнения.

Подробнее здесь: https://stackoverflow.com/questions/613 ... 11-and-pcl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»