Python运行时:重新编译和重用C库

2024-02-11

我正在开发一个用于用户定义函数的数值分析的工具。 这个想法是用 Python 制作一个方便的 UI,用户可以在其中输入 C 函数,然后按下按钮 - 并接收一些输出数据。 计算可能需要几分钟或几小时,因此仅使用 Numpy 的性能是不可接受的。

我尝试了以下方法:基于 Python 的 UI 调用 gcc,从用户函数编译 dll,该函数由我在 Cython 包装中基于 C 的核心算法使用。它可以工作,但由于无法完全卸载 python 模块,因此我无法重新编译用户定义的函数,直到整个 UI 程序关闭并再次运行。

我现在看到的唯一方法是将计算核心和 UI 进程分开,然后让它们通过共享内存/消息传递进行交互。当用户想要更新他的功能时,程序终止核心,重新编译dll并再次启动核心。

您能建议在这种情况下有什么常见做法吗?

谢谢你!


Python确实很好多重处理 http://docs.python.org/library/multiprocessing.html支持(实际上不是很好的线程支持),因此您可以为每个要计算的表达式生成一个新的 python 进程,在新进程中编译并加载 dll,然后让它将结果传达回父进程。当生成的进程退出时,所有内容都应该被卸载。

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

Python运行时:重新编译和重用C库 的相关文章

随机推荐

  • 使用 Haskell 正则表达式库替换/替代

    Haskell 中是否有用于使用正则表达式进行搜索和替换的高级 API 特别是 我正在看Text Regex TDFA or Text Regex Posix包 我真的很想要某种类型的东西 f Regex gt ResultInfo gt
  • 为什么 print 不是 python 中的函数?

    Why is printpython 中的关键字而不是函数 因为吉多认为他犯了一个错误 它已被更正 尝试 Python 3 它专门提供了一个其发行说明部分 http docs python org release 3 0 1 whatsne
  • Ada.Containers.Functional_Maps 在 Ada2012 中可用吗?

    有关的信息Ada Containers Functional Maps https docs adacore com gnat rm docs html gnat rm gnat rm the gnat library html ada c
  • Hugo 帖子目录出现在主页上,但不显示帖子

    对于我的 blogdown 创建的网站 使用Xmin https themes gohugo io hugo xmin 主题 帖子目录 我可以从中查看单个帖子 出现在主页上 而不是单个帖子 https joshuamrosenberg co
  • 使用 QuickBooks Web 连接器的身份验证问题:未将对象引用设置为对象的实例

    我有一个 SOAP 服务器来处理来自 QuickBooks Web Connector 的连接 它调用的第一个方法是 authenticate 它正确返回它期望的数据 但是它给了我错误 QBWC1012 Authentication fai
  • 每 X 行将 pandas 数据框装箱

    我有一个简单的数据框 我想每 3 行对其进行装箱 它看起来像这样 col1 0 2 1 1 2 3 3 1 4 0 我想把它变成这样 col1 0 2 1 0 5 我已经发过类似的问题了here https stackoverflow co
  • 通过构造进行 VBA 继承的后续操作,构造函数不起作用?

    这是后续this https stackoverflow com questions 42235854 vba inheritance via construction constructor not working 42236148 no
  • 如何确定 pip3 在何处安装非用户安装的二进制文件/脚本? [复制]

    这个问题在这里已经有答案了 我可以确定 pip 在哪里安装软件包二进制文件 脚本pip3 install user mypackage using python3 m site user base bin 是否有一种机制可以确定在哪里non
  • 在 R 中创建数据框的更好方法

    我使用相对原始且某种 愚蠢 的方式创建了下面的示例数据框 我想知道是否有更短 更简洁的方法这样做 万分感谢 library pedquant PECCPC lt md stock c 600028 601857 00386 HK 00857
  • Android 声音池时序

    有没有可靠的方法来防止声音池中的声音被截断 我在声音之间使用 sleep 函数取得了一些成功 但有时它们仍然会在开始另一个声音之前错过最后一点声音 我的应用程序按顺序播放短声音 杰瑞 虽然这是一个老问题 但我想我应该在这里发布一些东西 因为
  • 如何使用当前conda环境的python路径作为脚本的shebang?

    假设您有 2 个 conda 环境 py3 env and py3 clone env 如果你有一个script py具有以下结构 shebang import sys def main print hello world file sys
  • R 可以就地进行 cumsum 等操作吗?

    在Python中我可以这样做 a np arange 100 print id a shows some number a np cumsum a print id a shows the same number 我在这里所做的是替换con
  • .NET4.0:更新字典及其值的线程安全方式

    我有一个静态字典 我想安全地更新它 最初 字典将为空 但在应用程序的生命周期中 它将添加新值 此外 整数值将充当可以递增和递减的单独计数器 private static Dictionary
  • 该 ER 图是否应该使用三元关系

    我一直在查看 ER 图的示例以更好地理解它们 我发现了一张 ER 图 我不确定它是否正确 这是问题 规范 UPS 自豪地拥有有关每个邮件的处理和当前位置的最新信息 已发货的物品 为此 UPS 依靠全公司范围的信息系统 运送的物品有 UPS
  • AccessibilityNodeInfo - 发送文本

    我正在开发一个 Android 应用程序 我必须将文本发送到焦点EditText其他应用领域 我已经做到了API level 18及以上使用AccessibilityService 当我找到EditText 我从剪贴板粘贴数据 这是代码 p
  • 需要在多维数组中查找或计算重复项

    我需要计算多维数组中重复项的数量 并在发现重复项时发出警报 Arr 2 sk 3 df 7 uz 3 df 7 gh 建议 计数可以通过这种方式完成 如果 arr 0 位置等于下一个即将到来的位置 那么它必须给出一个计数并需要检查两个值组合
  • 将 socket.io 与 redux 结合使用

    这是我第一次使用socket io在生产中 我在用React Redux 我最近集成了socket io使用 redux 及其工作正常 但我不确定这是否是实现我所做的事情的最佳方法 因为我还没有找到带有 redux 的 socket io
  • 使用 XObject 包含外部图像的 PDF

    我正在尝试构建一个带有外部文件链接的 PDF 文件 我正在使用规范https www adobe com content dam Adobe en devnet acrobat pdfs pdf reference 1 7 pdf http
  • VSCode 远程容器 - 错误:ENOSPC:设备上没有剩余空间

    我一直在使用VSCode 远程容器插件 https marketplace visualstudio com items itemName ms vscode remote remote containers一段时间没有问题 但是今天 当我
  • Python运行时:重新编译和重用C库

    我正在开发一个用于用户定义函数的数值分析的工具 这个想法是用 Python 制作一个方便的 UI 用户可以在其中输入 C 函数 然后按下按钮 并接收一些输出数据 计算可能需要几分钟或几小时 因此仅使用 Numpy 的性能是不可接受的 我尝试