我试图从c调用python代码,该示例在我的环境(python3.6)上运行示例代码正常,但是当我将它集成到我的程序中时,我在调用时出现以下错误Py_Initialize();:...sem_init: SuccessFatal Python error: Can't initialize threads for interpreter你能提供一些线索来解决这个问题吗?似乎错误来自here,但我仍然不确定如何避免这种情况。
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
失败的代码是
if (head_mutex == NULL) Py_FatalError("Can't initialize threads for interpreter");
搜索代码回head_mutex
参考发现
#define HEAD_INIT() (void)(head_mutex || (head_mutex = PyThread_allocate_lock()))
它在失败的代码之前被调用。
所以,原因是PyThread_allocate_lock
return NULL
。Python 代码库中有几种不同的实现,具体取决于操作系统和构建标志,因此您需要对其进行调试或以其他方式确定在您的情况下使用哪个来进一步跟踪操作系统调用的错误。
添加回答
举报
0/150
提交
取消