Python.NET 사용해보기

2019.11.02 21:26

졸리운_곰 조회 수:458

Python.NET 사용해보기

[참고] https://github.com/pythonnet/pythonnet

이번에 예정인 프로젝트가 C#을 사용할 것이기 때문에 C#과 python을 어떻게 연동할지 찾아 보았습니다.

가장 눈에 띄는게 IronPython이었는데요,  인터넷상의 대부분의 문서들이 .NET 4.0에서 환경에서 연동하는 것을 설명하였습니다.
이렇게 할려면 VS2010이 있어야 하는것 같았구요.

저의 환경은 VS2008이고 시스템에 설치되어 있는 것도 .NET2.X 였습니다.
그래서 IronPython을 포기하고 Python.NET을 검토해 보았는데 의외로 쉽게 연동할수가 있었습니다.

일단은 Python.NET을 다운 받구요.
C# 프로젝트에서 다운 받은 DLL을 레퍼런스 시키면 바로 시작할 수 있습니다.

아래는 동료 연진이가 테스트한 코드입니다.

 
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using Python.Runtime;
 6 using System.Windows.Forms;
 7 namespace Python_Test
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13
14             int index = Application.ExecutablePath.LastIndexOf("\");
15             string AppPath = Application.ExecutablePath.Substring(0, index);
16
17             PythonEngine.Initialize();
18
19             //! 파이썬 파일이 들어 있는 폴더를 path 추가
20             PyObject sys = PythonEngine.ImportModule("sys");
21             PyObject path = sys.GetAttr("path");
22             PyObject append = path.GetAttr("append");
23             PyObject[] a = new PyObject[1];
24             a[0] = new PyString(AppPath + "\python");
25             append.Invoke(a);
26
27
28             PyObject helloModule = PythonEngine.ImportModule("Hello");
29
30             if (null != helloModule)
31             {
32                 //! 인자를 두개 만듦
33                 PyObject[] param = new PyObject[2];
34                 param[0] = new PyString("python.NET");
35                 param[1] = new PyString("aaa");
36
37                 string fromPython = helloModule.InvokeMethod("hello", param).ToString();
38                 Console.WriteLine(fromPython);
39
40                 Console.ReadKey();
41             }
42
43             PythonEngine.Shutdown();
44         }
45     }
46 }
 
 

파이썬 코드 : Hello.py

 
def hello(argv , argv1):
    return 'python say : ' + argv + argv1
 
 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

예전에 사용한 MFC+python 조합보다 좀더 간편하게 사용할수 있겠다라는 인상을 받았습니다.

[출처] http://zbaekhk.blogspot.com/2011/06/pythonnet.html

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
838 Putty - multi hop 터널링 사용 file 졸리운_곰 2019.11.06 70
837 [PUTTY] 터널링 SSH 포트포워딩 하는 방법 file 졸리운_곰 2019.11.06 233
836 소스 코드 관리와 git file 졸리운_곰 2019.11.03 146
835 Python for .NET 소개 및 사용법 졸리운_곰 2019.11.02 175
834 Python for .NET 사용법 file 졸리운_곰 2019.11.02 84
» Python.NET 사용해보기 졸리운_곰 2019.11.02 458
832 [Programming] Visual Studio Code 소스코드 정렬 단축키 file 졸리운_곰 2019.10.31 100
831 윈도우10에서 펄,perl 다운로드 및 설치후 버전 확인 까지 해보기 file 졸리운_곰 2019.10.24 216
830 파일 탐색기에서 명령 프롬프트 호출하기 file 졸리운_곰 2019.10.06 103
829 윈도우 10, 새로운 키보드 단축키 공개 file 졸리운_곰 2019.10.06 101
828 나의 Sparx Enterprise Architect(UML) 활용기 file 졸리운_곰 2019.09.29 161
827 델, 2019년 기술 트렌드 6대 전망 발표 file 졸리운_곰 2019.09.25 119
826 디지털 기록 도구 : 워크플로위(workflowy) 사용법 개론 file 졸리운_곰 2019.06.23 149
825 워크플로위(WorkFlowy) 하나로 할일관리와 메모를 모두 해결하기 file 졸리운_곰 2019.06.23 884
824 워크플로위(Workflowy) 사용법 총정리 file 졸리운_곰 2019.06.23 174
823 blockchain-logistics-DHL-glo-core-blockchain-trend-report.pdf file 졸리운_곰 2019.06.23 145
822 B4J Download file 졸리운_곰 2019.06.22 91
821 교수법 안내 - 성신여대 자료 file 졸리운_곰 2019.06.09 120
820 블록체인을 활용하는 10가지 방법 file 졸리운_곰 2019.06.06 98
819 [파트너스] 성공적인 프로젝트 진행을 위해 반드시 지켜야 할 3가지 file 졸리운_곰 2019.05.11 114
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED