Я пишу скрипт экспорта для Blender, который использует python для любых дополнений. Поскольку большая часть моей кодовой базы находится на C ++, я решил обернуть мой код в модуль Python (pyd), который будет импортирован из сценария экспорта и передаст все соответствующие биты для преобразования.
Пока я делаю сборку релизов, blender прекрасно загружает модуль, и я даже могу отлаживать с Visual Studio - но для устранения ошибки сборки релизов ненадежны, поэтому мне нужно использовать отладочную сборку модуля. К сожалению, в этом случае модуль не загружается.
Из консоли Python:
>>> import exporter_d
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Посмотрев немного, я обнаружил, что ошибка в том, что не удалось найти другую dll, и, поскольку я ничего не загружаю, я добавил отладочную сборку python вместе со своим модулем. Теперь ошибка другая:
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
ImportError: dynamic module does not define init function (PyInit_exporter_d)
Таким образом, я изменил имя инициализации модуля с «PyInit_exporter» на «PyInit_exporter_d» (и удалил отладочный pythond.dll, так как он сбивал блендер с фатальной ошибкой), которая возвращает первую ошибку (сбой загрузки dll).
Итак, мой вопрос таков: как я могу загрузить отладочные сборки модуля python при запуске релизной версии python?
Поскольку python встроен в blender, я бы не хотел загружать исходный код и перестраивать его.