PythonNet,Csharp如何白嫖Python生态和使用Matplotlib

文章目录

  • 前言
  • PythonNet
    • 环境配置
      • Python环境配置
      • Csharp Nuget配置
      • 运行代码测试
      • 运行结果
  • 总结

前言

我既然用Csharp去尝试学习机器视觉,我就想试试用Csharp去使用Python的库。

这个世界上有没有编程语言既有Python的开发效率,又有C/C++/

PythonNet,Csharp如何白嫖Python生态和使用Matplotlib_第1张图片

PythonNet

Pythonnet 官网

C# .Net通过pythonnet调用python pyd文件

环境配置

Python环境配置

调用Python,首先你的电脑得安装Python。我这里用的是Anaconda配置的Python环境

Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置

PythonNet,Csharp如何白嫖Python生态和使用Matplotlib_第2张图片

Csharp Nuget配置

我这里的.NET版本是

  • visual Studio 2022
  • .net core 8.0

Nuget安装
在这里插入图片描述

运行代码测试

我本地已经装好了Matplotlib了,我这里直接测试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();
     }
 }

PythonNet,Csharp如何白嫖Python生态和使用Matplotlib_第3张图片

运行结果

运行的速度还是很慢的,得等10秒钟左右。目前还没测试过断点,估计不太行。

PythonNet,Csharp如何白嫖Python生态和使用Matplotlib_第4张图片

总结

PythonNet给了Csharp一个白嫖Python生态的机会。虽然启动还是很慢的,但是起码代码能跑。而且是直接白嫖,这个就太牛逼了,相当于Python有什么库,我都可以通过这个方式直接白嫖库的使用。

你可能感兴趣的:(in,OpenCV,python,matplotlib,开发语言)