C#中调用Python脚本文件以及遇到的坑
程序员文章站
2022-03-29 19:33:15
...
Python对于数据分析和机器学习是非常的有优势,最近项目中遇到一个问题,需要通过在C#中调用Python脚本文件来处理数据,这里我使用C#中的System.Diagnostics.Process调用Python的脚本文件。
private void runPythonCmd()
{
using(Process p = new Process())
{
p.StartInfo.FileName = @"C:\Python_Code\TestSample\venv\Scripts\python.exe";
p.StartInfo.Arguments = @"C:\Data\3D\Data.py";
//是否使用操作系统shell启动
p.StartInfo.UseShellExecute = false;
//接受来自调用程序的接收信息
p.StartInfo.RedirectStandardInput = true;
//由调用程序获取输出信息
p.StartInfo.RedirectStandardOutput = true;
//重定向标准错误输出
p.StartInfo.RedirectStandardError = true;
//不显示cmd命令行窗口
p.StartInfo.CreateNoWindow = true;
//启动Pyth脚本
p.Start();
p.Close();
}
}
其中Process位于System.Diagnostics下,但是当我们调用python.exe时,需要对第三方模块进行安装,若直接使用
p.StartInfo.FileName = “python” //设置了系统环境变量,就可以直接使用python
但是这里需要指出的是,当所调用的Python脚本文件没有第三方模块依赖时,直接使用“Python”是可以的。当Python的脚本文件中使用第三方模块时,需要在Python系统安装路径下安装第三方模块库,才可以调用成功,否则会执行失败。这里我的第三方库直接安装在一个虚拟环境中。
上一篇: Docker实战 使用Dockerfile生成定制镜像
下一篇: 怎么查看python安装路径