STDIN
및 STDOUT
에 .NET 스트림을 사용하도록 IronPython 엔진이 설정된 code.interact()
(빌딩 모델링 소프트웨어 Autodesk Revit Architecture 2010 용 플러그인)의 애완 동물 오픈 소스 프로젝트 RevitPythonShell에서 명백한 경로를 시도했습니다. 그런 다음 TextBox
컨트롤로 리디렉션합니다. 다소 효과가 있지만 실제로는 못생긴 해킹 일뿐입니다. 가장 큰 문제는 일을 모든 쉘 물건을 받고있다그래픽 대화 형 IronPython 셸을 응용 프로그램에 포함시키는 방법은 무엇입니까?
: 화살표 위쪽 및 아래쪽 화살표 역사, 편집은, 그것은 얻기 위해 많은 작업을 필요 등 & 붙여 넣기, EOF, 구문 강조, 도구 팁 복사 이 오른쪽, 그리고 정말 내가 해결하려고 노력하고있어 문제가되지 않습니다 (나는 대화 형 쉘을 Revit에서 호스트하려고합니다. 완전한 쉘 GUI를 만들지 않습니다).
이 프로젝트가 .NET 프로젝트가 아니면 PyCrust/PyWrap을 재사용 할 수 있지만 WinForms 프로젝트에서 수행 할 수 있는지 확실하지 않습니다. .NET과 비슷한 것이 있습니까?
아무도 IConsole
인터페이스를 구현 한 적이 없으며 내가해야 할 일의 예를 보여줄 수 있습니까? 이것은 적절한 경로 (code
모듈을 사용하는 것과 반대되는)가 될 것으로 보이지만, 내 인생에서 나는 그것을 파악할 수 없습니다. IronPython 소스 코드에는 아무런 설명이 없습니다.
업데이트 : 일부 내용을 시험해 본 결과, 나는 결국 IronLab이라는 훌륭한 코드에 정착했습니다. 여기에는 구문 강조와 예제 셸이 포함됩니다. 코드는 훌륭하고 통합하기 쉽습니다. RevitPythonShell 코드를 임베드하는 방법에 대한 힌트를 확인하십시오.
정말 좋은 통조림 솔루션이 아니므로 ... 댓글로 남겨 두겠습니다. SharpDevelop IDE 프로젝트에서 Matt Ward의 PythonConsole.cs 소스를 볼 수 있습니다. SharpDevelop \ src \ AddIns \ BackendBindings \ Python \ PythonBinding \ Project \ Src에서 찾으십시오. 이 클래스를 분리하여 다른 프로젝트에서 사용할 수 있도록 (그리고 ICSharpCode.TextEditor) 큰 문제가 될 수 있습니다. 그러나 아마도 그것은 당신을 조금 도와 줄 것입니다. 빌드 서버에서 SharpDevelop 소스를 다운로드하십시오 : http://build.sharpdevelop.net/BuildArtefacts 또는에서 svn 사용 : svn : //svnmirror.sharpdevelop.net/sharpdevelop/branches/3.0/SharpDevelop – djlawler
부끄러워하지 마십시오;) 이것은 아주 좋은 답변입니다. 그렇게 할 수있게되면 곧 살펴볼 것입니다. –