首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调用Python C API的Python中包装C++库

在调用Python C API的Python中包装C++库
EN

Stack Overflow用户
提问于 2014-04-11 07:27:40
回答 1查看 250关注 0票数 0

C++库使用SWIG封装在Python中。我们可以在Python中实例化一个类,当我们调用这个使用Python C API的类中的方法时,会出现以下错误:

致命的Python错误: PyThreadState_Get:无当前线程中止陷阱:6

如果我们在C中调用Python之前插入Py_BEGIN_ALLOW_THREADS,那么这个错误就会变成一个分段错误。

这似乎是Python调用C的问题,C调用Python,不是吗?有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 21:27:02

在从C调用python之前,您需要确保使用PyGILState_Ensure()锁定GIL,并且在调用之后,您可以使用PyGILState_Release()释放GIL。有关详细信息,请访问:

https://docs.python.org/2/c-api/init.html?highlight=gil#PyGILState_Ensure

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23000913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档