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

发布时间:2024年01月22日

前言

我既然用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 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有什么库,我都可以通过这个方式直接白嫖库的使用。

文章来源:https://blog.csdn.net/qq_44695769/article/details/135742224
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。