提问人:jo31 提问时间:12/14/2020 更新时间:9/8/2021 访问量:5149
Pythonnet 是否支持 .NET Core 或 .NET 5.0
Is .NET Core or .NET 5.0 supported by Pythonnet
问:
我使用 Pythonnet 已经有一段时间了,但总是反对 .NET Framework 4。 随着 .NET 5.0 的最新版本,我想迁移我的项目,但我无法使其适用于非 Framework 版本(例如 .NET Core 2.0、.NET Core 3.0、.NET 5.0)
下面是我使用 .NET Framework 4.5 运行的一个非常简单的测试:
namespace TestNet
{
public class Dummy
{
private string _name;
public Dummy(string name)
{
_name = name;
}
public string Hello(string name)
{
return $"Hello {name}, my name is {_name}";
}
}
}
这将产生TestNet.dll,然后我运行以下Python代码:
>>> import clr
>>> clr.AddReference("TestNet")
<System.Reflection.RuntimeAssembly object at 0x000001899ACFABB0>
>>> from TestNet import Dummy
>>> d = Dummy("Bob")
>>> d.Hello("John")
'Hello John, my name is Bob'
所以一切正常。
现在,完全相同的 C# 代码,但面向 .NET Core 或 .NET 5.0 将为我提供:
>>> import clr
>>> clr.AddReference("TestNet")
<System.Reflection.RuntimeAssembly object at 0x00000122AF0DABB0>
>>> from TestNet import Dummy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'TestNet'
我的理解是他们使用的是 CoreClr 而不是 CLR,并且来自 Pythonnet 网站 (https://pythonnet.github.io/):
Python.NET (pythonnet) 是一个包,它使 Python 程序员能够与 .NET 4.0+ 公共语言运行时 (CLR) 几乎无缝集成
有谁知道是否支持 CoreClr?
谢谢!
环境:Python 3.8/Windows 10
答:
0赞
Patrick Wolf
9/8/2021
#1
对 .NET 5 的支持已添加到 Python.NET,尽管它尚未发布。
有关示例,请参阅此处
评论