文章目录
- 前言
- PythonNet
- 环境配置
- Python环境配置
- Csharp Nuget配置
- 运行代码测试
- 运行结果
- 总结
前言
我既然用Csharp去尝试学习机器视觉,我就想试试用Csharp去使用Python的库。
这个世界上有没有编程语言既有Python的开发效率,又有C/C++/
PythonNet
Pythonnet 官网
C# .Net通过pythonnet调用python pyd文件
环境配置
Python环境配置
调用Python,首先你的电脑得安装Python。我这里用的是Anaconda配置的Python环境
Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置
Csharp Nuget配置
我这里的.NET版本是
- visual Studio 2022
- .net core 8.0
Nuget安装
运行代码测试
我本地已经装好了Matplotlib了,我这里直接测试Matplotlib的代码调用
随便找一段代码
Matplotlib 教程
import matplotlib.pyplot as plt
import numpy as npxpoints = 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有什么库,我都可以通过这个方式直接白嫖库的使用。