欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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系统安装路径下安装第三方模块库,才可以调用成功,否则会执行失败。这里我的第三方库直接安装在一个虚拟环境中。

相关标签: C# python c#