gpt4 book ai didi

ironpython - 用 Python.Net 替换 IronPython?

转载 作者:行者123 更新时间:2023-12-03 18:59:53 25 4
gpt4 key购买 nike

多年来,我们一直在使用 IronPython 作为我们的一些 .Net 桌面应用程序中的脚本工具。客户一直在询问我们何时会支持 Python 3,但 IronPython3 似乎还有很长的路要走 (https://github.com/IronLanguages/ironpython3)。我刚刚找到了一个名为 Python.Net 的库,并且想知道这与 IronPython 有多相似,以及我们是否可以迁移到它?
大多数 Python.Net 示例展示了如何在 Python 代码中使用 .Net 类型,我找不到任何关于如何在 C# 中实际运行 Python 代码的好示例。页面末尾附近有一个标题为“嵌入 Python”的部分 (http://pythonnet.github.io/),但没有详细说明。
我很想知道如何从文件或字符串运行脚本,脚本是否可以“编译”(如 IronPython),大概“变量”可以像 IronPython 范围一样来回传递?是否有任何限制或已知问题? Python.Net 是否允许运行引用库(例如 numpy)的脚本? (我们无法使用 IronPython 进行这项工作,我认为这是因为它包含 IP 不支持的编译 (.pyc) 代码)。
有没有人有这两者的经验,并且能够提供一些关于他们如何比较的见解?

最佳答案

一个简短的总结:最初 Python.NET 被设计为 IronPython 的替代品,所以你想要的大部分都是可能的,但需要注意的是:你还需要一个常规的 Python 解释器。
现在了解更多细节:

  • 运行 Python 脚本 - PythonEngine类(class)有 Exec Eval职能。
  • “编译” - Python.NET 没有编译脚本的选项。您必须将它们作为字符串和/或文件传递给 PythonEngine (这只是 Python 解释器的一种表示形式)。
  • 像 IronPython 范围 - 有一个 PyScope 类,它允许您控制一组 Python 变量。
  • 限制或已知问题 - 有不少。您无法访问所有 CPython API,并且某些 .NET API 可能无法从 Python 调用,但在大多数情况下它可以正常工作。
  • 允许.. numpy - Python.NET 可以调用任何 Python 库。事实上,我广泛使用它来包装 TensorFlow for C# (其中还包括 NumPy)。

  • Python.NET 与 IronPython 相比的问题:
  • 需要单独安装和管理 Python 解释器
  • 函数重载不如
  • 关于ironpython - 用 Python.Net 替换 IronPython?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65124154/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com