您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-C嵌入式细分错误

Python-C嵌入式细分错误

我不太确定您似乎不理解Py_initialize / Py_Finalize中发布的解决方案不能与numpy一起使用两次。发布的解决方案非常简单:每次执行程序时,仅调用一次Py_Initialize和Py_Finalize。不要在每次运行循环时都调用它们。

我假设您的程序在启动时会运行一些初始化命令(只能运行一次)。在此处调用Py_Initialize。永远不要再打电话了。另外,我假设您的程序终止时,它具有一些代码来拆卸东西,转储日志文件等。在那里调用Py_Finalize。Py_Initialize和Py_Finalize不能帮助您在Python解释器中管理内存。请勿为此使用它们,因为它们会导致程序崩溃。取而代之的是,使用Python自己的函数来摆脱不需要保留的对象。

如果您确实必须在每次运行代码时都创建一个新环境,则可以使用Py_NewInterpreter并创建一个子解释器,然后使用Py_EndInterpreter销毁该子解释器。它们记录在Python C API页面底部附近。这与拥有新的解释器的工作方式相似,除了每次子解释器启动时不会重新初始化模块。

python 2022/1/1 18:39:44 有271人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶