如何为控制台和 WPF .NET 应用程序的 PythonNET 设置 Runtime.PythonDLL(PIP 安装)

How to set Runtime.PythonDLL for PythonNET for Console & WPF .NET Application (PIP Installation)

我正在尝试在 Python 3.10 上安装 PythonNET 并先将 Python 嵌入到 .NET 控制台应用程序中,然后再在 WPF 应用程序上进行尝试。

但是,在 GitHub 上下载本机代码并通过 pip install . 在解压缩的代码文件夹中安装后,我仍然对 PythonNET 的安装感到困惑。安装确实成功完成,Python.RunTime.dll 这里 C:\Users\Justin\AppData\Local\Programs\Python\Python310\Lib\site-packages\pythonnet\runtime\Python.RunTime.dll

但是,当我尝试在 C# 代码中指向它时,它仍然会触发 BadPythonDllException 错误。

C#配置

using System;
using System.Collections.Generic;        // For some implementation using List<> later on
using Python.Runtime;

namespace ConsoleApp_PythonNET_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string EnvPath = @"C: \Users\Justin\AppData\Local\Programs\Python\Python310";
            string pythonPath = @"C:\Users\Justin\AppData\Local\Programs\Python\Python310\Lib\site-packages\pythonnet";
            Environment.SetEnvironmentVariable("PATH", EnvPath, EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONHOME", EnvPath, EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONPATH", pythonPath, EnvironmentVariableTarget.Process);
            PythonEngine.PythonHome = Environment.GetEnvironmentVariable("PYTHONHOME", EnvironmentVariableTarget.Process);
            PythonEngine.PythonPath = Environment.GetEnvironmentVariable("PYTHONPATH", EnvironmentVariableTarget.Process);

            //Using (Py.GIL()) Method for some Python implementations
        }
    }
}

我可以检查我遗漏了什么吗?我只是仍然指向错误的目录吗?此外,WPF 应用程序中的嵌入过程是否相同,或者是否需要任何其他步骤?

提前致谢!干杯。

来自存储库中的 README

Runtime.PythonDLL ... 典型值为 python38.dll (Windows)、libpython3.8.dylib (Mac)、libpython3.8.so(大多数其他*nix).

例如您需要将 Runtime.PythonDLL 设置为 python39.dll.

的路径

嵌入C#时,无需安装pip包。 NuGet 就足够了。