본문 바로가기
프로그래밍/C#

[C#] 비쥬얼스튜디오에서 파이썬(Python) 파일 실행 시키기

by 코딩연습생 2020. 9. 11.
반응형

안녕하세요~

 

코딩연습생입니다 ㅎㅎ

 

 

이번 포스팅은 팁이라고 하기엔 좀 모호 할수 있는 내용입니다

 

머신러닝을 공부하면서 많이 접하게 되는 것이 바로 파이썬인데요

 

그중에서도 저는 파이토치(PyTorch)를 사용하여 딥러닝을 구현하고 있습니다

 

환경 구현을 C# + 파이썬 + MSSQL 이런 조합으로 구현을 하다가 C#에서 파이썬 py파일을 구동 시키는 법을

 

찾아 구현하게 되어 포스팅 합니다

 

첫번째로 경로 설정입니다

 

현재 PC의 설치된 파이썬 실행 파일을 환경변수에 잡아 주셔야 합니다

(Python.exe)

- 시스템 환경 변수

* 해당 환경 변수는 PC마다 상이할수 있으니 참고만 해주세요

 

 

그다음 C#에서 구동하고자 하는 py 파일의 경로를 지정해야 합니다

 

저는 경로를 클래스로 생성하여 프로젝트 시작 위치에서의 절대 경로를 변수로 지정했습니다

 

*경로는 환경 설정에 따라 다르니 참고만 해주세요

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Data;

namespace PCL_Vision_Settings
{
    class Settings
    {
        public string STARTUP_PATH;
        public string PYTHON_ROOT_PATH;
        public string PYTHON_PATH;
        public string SERVER_PATH;
        public string TRAINING_PATH;
        public string OCR_PREPROCESSING_PATH;
        public string OCR_TRAINING_PATH;
        
        public Settings()
        {
        	STARTUP_PATH = System.Windows.Forms.Application.StartupPath;
            PYTHON_ROOT_PATH = STARTUP_PATH + "Python API폴더 경로";
            PYTHON_PATH = "python.exe 파일 경로";
            SERVER_PATH = PYTHON_ROOT_PATH + "API 서버 실행을 위한 스크립트 경로";
            TRAINING_PATH = PYTHON_ROOT_PATH + "분류 훈련을 위한 스크립트 경로";
            OCR_PREPROCESSING_PATH = PYTHON_ROOT_PATH + "OCR 전처리를 위한 스크립트 경로";
            OCR_TRAINING_PATH = PYTHON_ROOT_PATH + "OCR 주석 작업 및 훈련을 위한 스크립트 경로";
        }

 

위의 소스처럼 변수를 전역변수로 설정하여 클래스에서 절대경로를 설정해주었습니다

 

 

그다음 비쥬얼스튜디오(C#)의 메인 화면으로 돌아와서 버튼이나 py파일을 구동하고자 하는 위치에 다음과 같이

 

코딩을 합니다

 

            string python_path = "\"" + 파이썬 경로 확인 + "\"";
            string training_path = "\"" + 훈련 스크립트 파일 경로 확인 + "\"";
            term_message = 훈련 관련 정보를 추강 입력 인자로 전달;
            System.Diagnostics.Process.Start(python_path, term_message); // 훈련 실행

 

좀 어렵죠??

 

 

정리를 하자면 절대경로를 설정하여 

 

System.Diagnostics.Process.Start()

 

사용하여 py 파일을 python으로 실행시키는 겁니다

 

이러게 한뒤 실행을 하면

 

 

위의 그림처럼 python.exe가 실행되면서 설정해준 py파일을 불러와 자동 실행 시키게 됩니다

 

최대한 내용을 정리해서 포스팅을 했는데 이해가 잘 안되실수도 있습니다~

 

그럴때는 직접 한번 구현해보시면 쉽게 이해가 되실거라 생각됩니다^^

 

반응형

댓글