我一直在为 Blender 编写一个导出脚本,它使用 python 来处理任何插件。由于我的大部分代码库都在 C++ 中,我决定将我的代码包装为一个 python 模块 (pyd),该模块将从导出脚本中导入并传递所有相关位进行转换。
只要我制作发布版本,搅拌机就可以很好地加载模块,我什至可以使用 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嵌入在搅拌机中,我想避免下载源代码并重建它。