首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用IronPython代替Python.Net?

用IronPython代替Python.Net?
EN

Stack Overflow用户
提问于 2020-12-03 10:28:19
回答 1查看 1.4K关注 0票数 6

多年来,我们一直使用IronPython作为一些.Net桌面应用程序中的脚本工具。客户一直在问我们什么时候会支持Python3,但是看起来IronPython3还有很长的路要走(https://github.com/IronLanguages/ironpython3)。我刚刚发现了一个名为Python.Net的库,我想知道这与IronPython有多相似,它是否是我们可以转移到的东西?

大多数Python.Net示例展示了如何在C#代码中使用.Net类型,而且我也找不到实际如何在C#中运行C#代码的好例子。页面末尾有一个标题为“嵌入Python”的部分(http://pythonnet.github.io/),但没有详细说明。

我想知道如何从文件或字符串运行脚本,脚本是否可以“编译”(如IronPython),是否可以像IronPython作用域一样来回传递“变量”?是否有任何限制或已知的问题?Python.Net是否允许运行引用库(如numpy )的脚本?(我们无法使用IronPython,我认为这是因为它包含了IP不支持的编译(.pyc)代码)。

有没有人有这两方面的经验,并能提供一些关于他们如何比较的洞察力?

EN

回答 1

Stack Overflow用户

发布于 2020-12-03 18:51:04

一个简短的总结:最初,Python.NET被设计成IronPython的替代器,所以大多数您想要的东西都可以通过主要的警告来实现:您还需要一个常规的Python解释器。

下面是更多的细节:

  1. 运行Python - PythonEngine类具有ExecEval函数。
  2. “编译”- Python.NET没有编译脚本的选项。您必须将它们作为字符串和/或文件传递给PythonEngine (这只是Python解释器的一个表示)。
  3. 和IronPython作用域一样--有一个PyScope类,它允许您控制一组变量。
  4. 限制或已知问题-有相当多。您不能访问所有的CPython API,一些.NET API可能不可能从.NET调用,但在大多数情况下,它只是起作用。
  5. 允许.。numpy - Python.NET可以调用任何Python库。实际上,我广泛地使用它来包装TensorFlow for C# (也包括NumPy)。

Python.NET与IronPython相比的问题是:

  • 要求分别安装和管理Python解释器。
  • 功能过载不是很好
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65124154

复制
相关文章

相似问题

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