10

私は、お気に入りのオープン ソース プロジェクトRevitPythonShell (建物モデリング ソフトウェア Autodesk Revit Architecture 2010 のプラグイン) で明白なパスを試しましcode.interact()た。これらをコントロールにリダイレクトします。それはちょっとうまくいきますが、実際には醜いハックです。STDINSTDOUTTextBox

主な問題は、すべてのシェル機能を動作させることです: 履歴、編集、コピー & ペースト、EOF、構文の強調表示、ツール ヒントなどの上矢印と下矢印。これを正しく行うには多くの作業が必要です。私が解決しようとしている問題は実際にはありません(完全なシェルGUIを作成するのではなく、Revitでホストされるインタラクティブなシェルを取得しようとしています)。

これが .NET プロジェクトでない場合は、おそらくPyCrust/PyWrapの再利用を検討するでしょうが、それが WinForms プロジェクトから実行できるかどうかはわかりません。.NET に似たものはありますか?

誰かがIConsoleインターフェースを実装したことがあり、私が何をする必要があるかの例を示すことができますか? これは(codeモジュールを使用するのではなく)適切なルートのようですが、私の人生ではそれを理解できません。IronPython のソース コードには、コメントは一切ありません。

更新:いくつか試した後、最終的に優れたIronLabコードに落ち着きました。構文の強調表示とすべてを備えたシェルの例が含まれています。コードは素晴らしく、簡単に統合できました。RevitPythonShell コードの埋め込み方法に関するヒントを確認してください。

4

2 に答える 2

7

似たようなものを探していたところ、IronLab プロジェクトに優れた IronPython コンソールが含まれていることがわかりました。ソース コードはhttps://github.com/rwg0/ironlab/tree/master/IronPythonConsoleにあります。

[2016 年 10 月 25 日編集] 壊れた URL を修正

于 2012-03-21T19:59:35.150 に答える
3

わかりました、それから私は2つの可能な答えがあります。上記のコメントの1つ....そしてもう1つははるかに単純です(インテリセンスなし、構文の強調表示なし):

http://www.codeproject.com/KB/edit/irontextbox2.aspx

これはJoeSoxによるもので、2.6ではなくIronPython2用です。ただし、約5分で2.6で正しく動作するように更新できました。興味があれば、diffファイルを送信する方法や、更新されたプロジェクトをどこかで叩く方法を見つけることができます(MITライセンスの下で公開されています)。

楽しみ!

デビッド

于 2010-03-04T20:00:44.890 に答える