前言
我既然用Csharp去尝试学习机器视觉,我就想试试用Csharp去使用Python的库。
PythonNet
环境配置
Python环境配置
调用Python,首先你的电脑得安装Python。我这里用的是Anaconda配置的Python环境
Csharp Nuget配置
我这里的.NET版本是
- visual Studio 2022
- .net core 8.0
Nuget安装
运行代码测试
我本地已经装好了Matplotlib了,我这里直接测试Matplotlib的代码调用
随便找一段代码
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])
plt.plot(xpoints, ypoints)
plt.show()
对应的Csharp代码
static void Main(string[] args)
{
//选择你Python的dll位置
Runtime.PythonDLL = @"D:\Anaconda3\python311.dll";
//创建Python环境
PythonEngine.Initialize();
//展开Python的全局解释器
using (Py.GIL())
{
dynamic plt = Py.Import("matplotlib.pyplot");
dynamic np = Py.Import("numpy");
dynamic xpoints = np.array(new int[] { 0, 6 });
dynamic ypoints = np.array(new int[] { 0, 100 });
plt.plot(xpoints, ypoints);
plt.show();
Console.WriteLine("运行完毕");
Console.ReadLine();
}
}
运行结果
运行的速度还是很慢的,得等10秒钟左右。目前还没测试过断点,估计不太行。
总结
PythonNet给了Csharp一个白嫖Python生态的机会。虽然启动还是很慢的,但是起码代码能跑。而且是直接白嫖,这个就太牛逼了,相当于Python有什么库,我都可以通过这个方式直接白嫖库的使用。