使用自定义构建的 C-API Python 3.3.5 模块

问题描述

我正在尝试为使用 Python 3.3.5 作为脚本扩展的游戏 (Assetto Corsa) 导入 C-API Python 模块。 我正在使用 here 中描述的 MSVC 10.0 来构建运行良好的扩展。 导入生成的 *.pyd 文件在终端(使用 Python 3.3.5)以及在调用脚本时的游戏中都有效。 然而,实例化一个类对象只能在终端中工作,但在游戏中执行时会导致崩溃。

通过记录所有执行的语句,我知道 C-API 中的构造函数被正确调用,所以问题一定出在其他地方。 我认为发布所有代码可能太多了,正如我所说,它按预期工作。

有没有人有想法,可能有什么问题?

目标平台显然是 Windows。

解决方法

我自己解决了这个问题,但是,我不确定是什么原因。 从“PyTypeObject”描述中删除垃圾收集标志“Py_TPFLAGS_HAVE_GC”和指向析构函数的函数指针就成功了。 小心,这可能会导致内存泄漏! :)