Python не видит скомпилированный сторонний модуль. Windows (msvc)

Здравствуйте!

Пытаюсь разобраться с Boost.Python'ом. Взял простенький пример с функцией, собрал через CMake .dll-ку, переименовал .dll в .pyd, пытаюсь импортировать в .py-скрипт, в итоге вылезает ошибка подгрузки dll, не обнаружен модуль:

Traceback (most recent call last):
  File "c:\Users\zofor\OneDrive\Рабочий стол\example\hello.py", line 2, in <module>
    import modules.hello_ext
ImportError: DLL load failed while importing hello_ext: Не найден указанный модуль.

Windows 11, Компилятор MSVC 19.40 (vc143) x64, Boost 1.85.0

Исходные коды прилагаю, благо они маленькие:

Файл CmakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(hello_ext)

set(CMAKE_CXX_COMP)
set(CMAKE_CXX_STANDARD 17)

# find_package работать отказывался, поэтому ввел прямые пути
include_directories("C:/Libraries Files/boost_1_85_0")
include_directories("C:/Program Files/Python312/include")

link_directories("C:/Libraries Files/boost_1_85_0/lib64-msvc-14.3")
link_directories("C:/Program Files/Python312/libs")

add_library(hello_ext MODULE hello.cpp)

Библиотека собирается без каких либо проблем

Файл с реализацией библиотеки hello.cpp, заголовочных файлов нет

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>

char const* greet()
{
   return "hello, world";
}

BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("greet", greet);
}

И сам скрипт hello.py

import modules.hello_ext
print(hello_ext.greet())

hello_ext.pyd находится в папке modules, __init__.py в папке присутствует


Ответы (1 шт):

Автор решения: drxvmrz

Проблему удалось решить добавлением boost.python-овой .dll в папку к компилируемому .pyd-модулю. Все сразу заработало!

Видимо, в компилируемой dll-ке не хранится информация, где искать связанные с ней сторонние dll-ки, и система пытается найти их сама. При этом добавление пути к библиотекам boost в PATH ничего не дает!

→ Ссылка