[C# 문법] C# 에서 Process로 Python 파일 실행하기

참조


목적

  • C# 에서 기본으로 제공하는 Process 클래스를 통해 Python 파일을 실행하는 방법에 대해서 POC 진행합니다.
  • 실제 Process로 파이썬 파일을 실행하여 정상적으로 실행되는지 테스트 진행합니다.

개발 환경

  • .NET Version : .NET 6
  • 개발 도구 : Visual Studio 2022

예제 코드

  • C#에서 Python 파일을 Process 로 시작하려면 먼저 Python 설치 경로 를 알아야 합니다.
  • 다음으로, Arguments에 실제 실행시킬 파이썬 파일이 위치해 있는 경로를 넣어 줍니다.
  • 그외 조건은 필요에 따라서 달라질 수 있습니다.
using System.Diagnostics;

Start();

void Start()
{
    var path = @"C:\\src\\unit_test\\tf_serving\\gRPC";
    var pythonFileName = "tensorflow_serving_gRPC.py";

    run_cmd(path, pythonFileName);
}

void run_cmd(string path, string pythonFile)
{
    var psi = new ProcessStartInfo
    {
        FileName = @"C:\Users\AppData\Local\Programs\Python\Python310\python.exe", // 파이썬 설치 경로
        Arguments = $"\"{path}\\{pythonFile}",
        UseShellExecute = false,
        CreateNoWindow = true,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };

    var erros = string.Empty;
    var results = string.Empty;

    using (Process process = Process.Start(psi))
    {
        using (StreamReader reader = process.StandardOutput)
        {
            while (!process.HasExited)
            {
                Console.WriteLine(reader.ReadLine());
            }

            erros = process.StandardError.ReadToEnd();
            results = process.StandardOutput.ReadToEnd();
        }
    }

    Console.WriteLine(erros);
    Console.WriteLine(results);
}

실행 결과

  • 실행 결과, 정상적으로 C#에서 tensorflow_serving_gRPC.py 파일을 정상적으로 실행하여 Inference 값이 C# Console에 출력되는 것을 확인할 수 있습니다.
실제 값 : 7 / 예측 값 : 7
실제 값 : 2 / 예측 값 : 2
실제 값 : 1 / 예측 값 : 1
실제 값 : 0 / 예측 값 : 0
실제 값 : 4 / 예측 값 : 4
실제 값 : 1 / 예측 값 : 1
실제 값 : 4 / 예측 값 : 4
실제 값 : 9 / 예측 값 : 9
실제 값 : 5 / 예측 값 : 5
실제 값 : 9 / 예측 값 : 9
실제 값 : 0 / 예측 값 : 0
실제 값 : 6 / 예측 값 : 6
실제 값 : 9 / 예측 값 : 9
실제 값 : 0 / 예측 값 : 0
실제 값 : 1 / 예측 값 : 1

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY