我正在尝试开发一个在 .net 中嵌入 python 的简单计算器程序,我想引用 NuGet 中的 pythonnet 将其包含在我的项目中
我使用 NuGet 安装了 pythonnet v2.3.0,我的系统中还安装了 python 3
如果有人给我嵌入 python net 的分步说明,那就太好了
form1.cs代码:
using System;
...
using Python.Runtime;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
PythonEngine.Initialize();
}
private void button1_Click(object sender, EventArgs e)
{
int num1 = int.Parse(a.Text);
int num2 = int.Parse(b.Text);
result.Text = (num1 + num2).ToString();
using (Py.GIL())
{
dynamic np = Py.Import("numpy");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
using(Py.GIL())当我在代码中使用line 时,编译器会显示
System.BadImageFormatException:“无法加载文件或程序集“Python.Runtime,Version=2.3.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。尝试加载格式不正确的程序。”
小智 5
此问题可能是由 Python.Runtime.dll 与 Python 之间的体系结构(32 位/64 位)不匹配引起的。
目前在 nuget.org 上发布的 pythonnet 2.3.0 NuGet 包包括两个版本的 Python.Runtime.dll 程序集:32 位 (x86) 和 64 位 (x64)。即使项目平台设置为 64 位,此软件包也无法在项目中安装正确的引用,这是一个已知问题: https ://github.com/pythonnet/pythonnet/issues/472 。
通常会安装 x86 参考,如果您的 Python 是 64 位,则会出现上述异常。
要解决此问题:
| 归档时间: |
|
| 查看次数: |
4599 次 |
| 最近记录: |