我试图在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就足够了。