如何为 PythonNET 设置 Runtime.PythonDLL for Console & WPF .NET Application (PIP Installation)



我试图在Python 3.10上安装PythonNET,并在随后在WPF应用程序上尝试之前先将Python嵌入到。net控制台应用程序中。

然而,我仍然对PythonNET的安装感到困惑,在GitHub上下载本机代码并通过pip install .将其安装在解压缩的代码文件夹内。安装确实成功完成,Python.RunTime.dll这里是C:UsersJustinAppDataLocalProgramsPythonPython310Libsite-packagespythonnetruntimePython.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: UsersJustinAppDataLocalProgramsPythonPython310";
string pythonPath = @"C:UsersJustinAppDataLocalProgramsPythonPython310Libsite-packagespythonnet";
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设置为path topython39.dll

当嵌入到c#中时,不需要安装pip包。NuGet就足够了。

最新更新