Py_Initialize 和 Py_finalize 以及 MatPlotlib

2023-11-30

这是一个已知问题,但我想请专家为我解决这个问题的最佳方法。

我有一个项目(Euler Math Toolbox),它运行 Python 作为脚本语言。为此,在运行时加载库模块“python.dll”,该模块链接到“python27.lib”。然后调用 Py_Initialize。这一切都运作良好。

但用户可以使用新的会话和笔记本重新启动 Euler。然后我希望Python清除所有变量和导入。为此,我调用 Py_Finalize 并卸载“python.dll”。当需要Python时,加载和初始化会再次启动Python。

这有效。但是,如果在上一个会话中导入 MatPlotlib,Python 将在第一次调用时崩溃。看来Py_Finalize并没有完全清除Python,也没有卸载我的“python.dll”。我尝试卸载“python27.dll”(Python DLL),但这没有帮助。最有可能的是,另一个 DLL 保持活动状态,但在 Py_Finalize 期间损坏。

为了解决这个问题,清除所有变量和导入就足够了。我可以忍受不调用 Py_Finalize。但如何呢?

PS:你可能想知道,为什么我不直接将 euler.exe 链接到 Python。原因是,如果未安装 Python,即使从不需要它,这也会阻止 Euler 形式启动。

感谢您的任何答复!如果您愿意,可以将您的答案复制到 gmail 上的renegrothmann。那会对我有帮助。


为了解决这个问题,清除所有变量和导入就足够了。我可以忍受不调用 Py_Finalize。但如何呢?

如果您在每次调用后正确释放所有引用,那么这应该可以正常工作。只需确保仅致电Py_Initialize一次,并且从不打电话Py_Finalize。使用单独的字典运行每个“会话”,并在完成后始终正确减少引用计数(这将在运行代码后释放这些变量)。

附带说明 - 这是一个常见问题。许多其他包,例如 numpy,或使用 Boost::Python 编写的任何包,如果您使用Py_Finalize.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Py_Initialize 和 Py_finalize 以及 MatPlotlib 的相关文章

随机推荐

  • 如何在成员方法闭包中使用struct self

    如何在闭包中调用方法 get access token方法可以基于设置新的访问令牌self get base url fn fetch access token base url String gt String String new fn
  • 我需要有关此错误的帮助:java.lang.NoSuchMethodError

    我有这个Java代码 JPA String queryString SELECT b sum v votedPoints as votedPoint FROM Bookmarks b LEFT OUTER JOIN Votes v on v
  • 在 PHP 函数中检索推文中的所有主题标签

    我想使用 PHP 函数从推文中检索所有主题标签 我知道有人问过类似的问题here 但没有提示如何在 PHP 中准确实现这一点 由于我对正则表达式不太熟悉 因此不知道如何编写一个返回推文中所有主题标签的数组的函数 那么我该如何做到这一点 使用
  • 在新线程上执行 Java 回调

    在这个项目中 一个Manager执行事件排队 并使用回调返回事件结果 回调不扩展Runnable 管理器在单独的线程上运行 调度事件 一旦事件终止 同一线程就会调用回调 这意味着在前一个事件的回调终止之前不会调度下一个事件 为了避免这种情况
  • 如何使用 HtmlService 运行服务器端功能

    我是编程新手 我正在尝试使用 Google apps script 与 jQuery 连接几个按钮 我有一个电子表格和一个添加到其中的菜单 可以从 HtmlService 打开一个对话框 在对话框中 我有两个按钮 一个关闭对话框 另一个执行
  • SQL 数据库中的量纲和单位分析

    Problem 存储各种测量值的时间序列数据的关系数据库 Postgres 每个测量值可以具有特定的 测量类型 例如温度 溶解氧等 并且可以具有特定的 测量单位 例如华氏度 摄氏度 开尔文 百分比 毫克每升等 问题 有没有人建立过类似的数据
  • 如何将表格从 HTML 导出到 Excel 并在单元格中排列图像

    我需要将表格从 HTML 导出到 Excel 我的表格由姓名 年龄 日期 金额和带有小图像的图像列组成 我有一个生成 Excel 文档的函数 function downloadsalesreport var cache this tmpl
  • 为什么我在 iPhone X 模拟器的底部看到白色区域?

    我在 stackoverflow 上读过一些答案 比如这个在 iPhone X 模拟器的顶部和底部看到黑条 但似乎有点不同 因为我的问题只发生在屏幕的底部区域 正如我们所看到的 我的loginVC 底部有一个白色区域 我希望我的 UIIma
  • PHP - 如何有效地读取大型远程文件并在循环中使用缓冲区

    我想了解如何使用读取文件的缓冲区 假设我们有一个大文件 其中包含逐行的电子邮件列表 分隔符是经典的 n 现在 我们想要以类似的检查方式将每一行与数据库中表的每条记录进行比较line of file table row 如果您有一个普通文件
  • Grails 和 MySQL 连接异常

    我有一个正在生产中的 Grails 应用程序 今天早上我收到警报 发现服务器无法解析 雄猫不停地旋转 我研究了一下 看起来这与 MySQL 导致连接在 8 小时不活动后超时有关 我在 stackoverflow 上找到了例子有类似问题的人
  • UI-Router $state.$current 任意状态的包装器

    这是用例 给定一个 stateConfig 对象 我可以访问state url 但这仅返回该配置对象中指定的 URL 而不是包含状态父级 URL 的 URL 我需要构建完整的 URL 以传递到 urlMatcherFactory compi
  • 将 Linq 与 2D 数组一起使用,未找到选择

    我想使用 Linq 查询 2D 数组 但出现错误 找不到源类型 SimpleGame ILandscape 的查询模式的实现 未找到 选择 您是否缺少对 System Core dll 的引用或 System Linq 的 using 指令
  • Python:如何检查有符号数是正数、负数还是无?

    简单来说 我正在输入一个值 我想确定该值是否为 alpha 如果它不是 alpha 我想检查它是否是数字 如果它是一个数字 我想检查它是正数还是负数 我读了很多关于检查签名号码的内容 例如 50 有两种方法 我们可以使用这样的东西 try
  • 无法在 Windows 10、Strawberry Perl 上使用 LWP::UserAgent 从 Perl 访问本地主机上的 selenium 服务器

    在 Windows 10 上 我安装了geckodriver exe from https github com mozilla geckodriver releases和 硒服务器来自https www selenium dev down
  • 在 Google Spreadsheet API 上获取合并单元格宽度

    我正在使用 Google Spreadsheet API 将包含工人轮班的文档转换为事件日历 唯一的问题是班次是由根据天和小时合并的单元格表示的 天和小时作为行 不同的工作时段作为列 当我读取某个已合并并跨越 6 个单元格的单元格时 我无法
  • Angular 9 生产错误:无法设置只有 getter 的(抽象)类 MyFilter { } 的属性 ɵfac

    我在库中有一个抽象组件 没有常春藤 带有 Directive 装饰器具有一些继承给其子级的基本属性和功能 当我尝试在任何项目中使用该库时 我在浏览器控制台中收到以下错误 Uncaught TypeError Cannot set prope
  • 我可以在 XML 架构元素名称中使用正则表达式吗?

    我正在尝试为我传递的一段代码生成的 XML 创建一个 XML 架构 我将描述我的问题的简化版本 假设此代码生成的 XML 文件描述了一个文本文档 它看起来像这样
  • Jquery 邮政信箱验证

    我浏览了一些较旧的帖子 但对正在发生的事情仍然有点困惑 我有一个不允许使用邮政信箱的运输表格 因此我试图找到一个验证器来查看并确保输入字段中没有邮政信箱 我确保每个字段都填写了此代码 但想知道如何将其合并到邮政信箱验证中 注意 这是与我的实
  • 在 PHP 和 MySQL 中从 2 列创建关联数组

    我可以用两列创建一个关联数组吗 我希望 A 列作为键 B 列作为值 id name 1 sky 2 space 我想要一个产生如下结果的函数 ary array 1 gt sky 2 gt space php 中是否存在与此相关的函数 我正
  • Py_Initialize 和 Py_finalize 以及 MatPlotlib

    这是一个已知问题 但我想请专家为我解决这个问题的最佳方法 我有一个项目 Euler Math Toolbox 它运行 Python 作为脚本语言 为此 在运行时加载库模块 python dll 该模块链接到 python27 lib 然后调