最近有群友咨询C#如何调用Python?小编尝试Python.NET过程中遭遇的版本兼容性和环境配置难题,小编决定寻找一个更为简单、稳定且对初学者友好的解决方案。小编搜索一番,除了Python.NET之外,还有其他途径能够帮助我们轻松地在C#项目调用Python脚本,那就是通过命令行调用,使用 System.Diagnostics.Process 类可以启动 Python 进程,并通过命令行参数传递脚本路径等信息。调用流程如下:
1、环境准备
在操作系统中安装好python,最好3.0以上版本;然后新建一个.NET8控制台程序,不需要引用任何组件;最后新建一个python文件用来测试,用txt新建并另存为py文件就可以。代码如下:
#定义一个数字列表
numbers = [10, 20, 30, 40, 50]#调用内置函数进行聚合
sum_of_numbers = sum(numbers) # 求和print('上面数组求和为:',sum_of_numbers)print('欢迎关注公众号:Dotnet开发跳槽!');
2、通过命令行调用Python
此方法的核心思想是,C#程序通过System.Diagnostics命名空间下的Process类来启动Python解释器,并向其传递Python脚本的路径及必要的参数。代码如下:
using System.Diagnostics;using (Process process = new Process())
{
process.StartInfo.FileName = "python";
process.StartInfo.Arguments = "E:\\lea\\python\\demo.py";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
Console.WriteLine(result);
}
效果如下:
优势与局限
优势:该方法简单直观,对环境的依赖较少,不需要安装额外的库或组件,特别适用于环境配置复杂或版本兼容性问题突出的情况。
局限:相比直接的库集成(如Python.NET),这种方法牺牲了一定的性能,特别是在频繁的交互场景下,每次调用都需要启动新的Python进程。此外,数据交换主要通过文本输出,处理大量或复杂数据结构时不够高效。大家使用Python.NET成功没有?欢迎分享经验。
结语
本文讲述了C#如何用最简单调用Python的方法,通过命令行调用Python。它能够快速搭建起C#与Python之间的通信桥梁,尤其适合快速验证概念或进行初步集成测试。在大模型时代,Python学习的必要性增大,尤其是.NET开发,C#中调用Python大大降低了学习成本。对于在C#中调用Python大家还有什么好的方法,欢迎留言讨论。
来源公众号:DotNet开发跳槽