2014-04-17 4 views
6

다음과 같은 문제가 있습니다. 파이썬으로 작성된 오래된 응용 프로그램이 있습니다. 이 응용 프로그램은 사용자가 실행할 수있는 작은 파이썬 단계를 지정할 수있게 해주 며, 파이썬 단계는 기본적으로 작은 파이썬 스크립트입니다.이 응용 프로그램의 실행에는 명령 줄에서 실행하는 것과 같은 다른 단계가 필요하기 때문에 단계라고 부릅니다. 이러한 python 단계는 xml 파일에 파이썬 코드로 저장됩니다.C# 응용 프로그램에서 파이썬 통합

이제 C# .NET을 사용하여 응용 프로그램을 다시 작성하고 싶습니다. 이런 식으로 모범 사례 솔루션이 있습니까?

python을 외부 programm로 호출하고 Python 인터프리터에 실제 파이썬 단계 (스크립트)를 전달하고 싶지 않습니다. 뭔가가 내장되기를 바랍니다. IronPython과 .NET Python을 보았지만 확실하지 않습니다. 어느 것을 사용할 것인가. 작은 스크립트에 대해 디버깅을하고 싶습니다. 그래서 인터프리터 솔루션을 사용할 수 없습니다.

더 중요한 것은 이미 많은 스크립트가 이미 존재한다는 것입니다. 따라서 파이썬과 동일한 구문을 사용하는 파이썬의 C# 구현을 사용해야하며 파이썬의 libs와 동일한 구문을 사용해야합니다. 이것은 가능한가?

감사 인사 Xeun는

답변

6

IronPython 당신이 원하는합니다. .NET 바이트 코드로 컴파일됩니다. Python 코드를 다른 .NET 언어에서 쉽게 호출 할 수 있습니다 (다른 방법). IronPython도 Visual Studio에서 지원됩니다.

+0

이 스크립트는 어떤 C 확장을 사용하는 경우 IronPython의와 주요 잠재적 인 문제는 - 그들은 단지 순수한 파이썬 있다면 + stdlib 그들은 잘되어야합니다. –

+0

스크립트는 C 확장을 사용할 수 있습니다. 이 문제가 있습니까? – Xeun

+1

현재 일부 데이터 표시를 단순화하기 위해 numpy/matplotlib를 C# 프로젝트에 병합하는 방법을 알아 내려고합니다. Ironpython은 그 라이브러리가 사용 가능한 것으로 보이지 않기 때문에 뒤쳐진 것처럼 보입니다. – Bovaz

-2

Python 스크립트는 IronPython과 함께 C#에서 실행할 수 있습니다.

var ipy = Python.CreateRuntime(); 
    dynamic test = ipy.UseFile("Test.py"); 
    test.Simple(); 

은 참조 :

http://putridparrot.com/blog/hosting-ironpython-in-a-c-application/

https://blogs.msdn.microsoft.com/charlie/2009/10/25/running-ironpython-scripts-from-a-c-4-0-program/

+0

에 대해 pythonnet을 사용해 볼 수 있습니다. Uolot은 다른 솔루션 인 btw와 함께 python을 p2exe로 컴파일하고 .NET에서 호출합니다. https://stackoverflow.com/questions/1371994/importing-external -module-in-ironpython – FrankyHollywood

관련 문제