Pythonnet .NET 6

Enf*_*oul 8 .net python python.net .net-core

经过几个小时的搜索和反复试验,我终于决定向你们寻求帮助。当我尝试从 python 调用 .NET 6 开源项目中的一些函数时,我在树莓派上安装了 python3.8.4 并设法安装了 pythonnet 3.0.0 模块。

我的 app.runtime.json 如下:

{
  "runtimeOptions": {
   "tfm": "net6.0",
   "framework": {
    "name": "Microsoft.NETCore.App",
    "version": "6.0.102"
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试像这样加载 CLR 时:

from clr_loader import get_coreclr
from pythonnet import set_runtime

rt = get_coreclr("app.runtime.json")
set_runtime(rt)
import sys
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

RuntimeError Traceback (最近一次调用最后) 输入 In [11], in 1 from clr_loader import get_coreclr 2 from pythonnet import set_runtime ----> 4 rt = get_coreclr("app.runtime.json") 5 set_runtime(rt) 6 import系统

文件 ~/.local/lib/python3.8/site-packages/clr_loader/ init .py:42,在 get_coreclr(runtime_config, dotnet_root, properties) 39 from .hostfxr import DotnetCoreRuntime 41 如果 dotnet_root 为 None: ---> 42 dotnet_root = find_dotnet_root() 44 impl = DotnetCoreRuntime(runtime_config=runtime_config, dotnet_root=dotnet_root) 45 如果属性:

文件 ~/.local/lib/python3.8/site-packages/clr_loader/util/find.py:22,在 find_dotnet_root() 20 dotnet_path = Shutil.which("dotnet") 21 如果不是 dotnet_path: ---> 22 raise RuntimeError("Can not certain dotnet root") 24 try: 25 # Pypy 现在不提供 os.readlink 26 if hasattr(os, "readlink"):

运行时错误:无法确定 dotnet root

我将 dotnet 6.0 sdk 的路径导出到 PATH,当我使用“dotnet --version”时,它会打印出 6.0.102。

我可能做错了什么?

提前致谢,

外延