2017-06-05 3 views
0

私たちは、jythonスクリプトをデバッグ/実行するはずのRCPアプリケーションを開発しています。これらのスクリプトには固有の注釈が含まれているため、独自のPythonInterpreterインスタンスを作成し、モジュールとハンドラをサポートするように設定する必要がありました。 私たちは、デバッガ、エディタなどを取得するためにPyDevをアプリケーションに統合しようとしていますが、独自のjythonインタープリタオブジェクトをPyDevに設定しようとすると問題が発生します。jythonインタプリタをPyDevに設定

どうすればいいですか?

いくつかの調査から、インタプリタマネージャには実行可能ファイル(jythonまたはpython)が必要であることがわかります。何らかの形で私たちのオブジェクトをPyDevに設定したり、何らかの形でPyDevのインタプリタオブジェクトを拡張したり、ハンドラやモジュールを追加することは可能ですか?

EDIT:

だから、私たちが持っていた問題は、私たちは、プログラムのJythonインタプリタとしてJythonのjarファイルを設定しようとしたとき、我々はそれがメインクラスを持っていなかったというエラーを持って、通訳として扱うことができなかったということです。私たちがしたことは、私たちがこれらの問題を引き起こさなかった適切なjythonスタンドアロンジャーを発見したことです。 私たちのモジュールとハンドラーを設定することは、私たちが拡張したjythonスクリプトの機能が、インタープリタが認識しているいくつかの注釈をプログラム的に持つことを意味しています。例えば、私たちがPythonコードを持っているなら、ある種のイベントが発生したときに、@ annotated関数が実行されることをインタプリタは認識しています。また、インタプリタをインスタンス化するときに、いくつかのjarファイルを含むライブラリを追加する必要があります。例:

interpreter.exec("import sys"); 
if (modulePaths != null && modulePaths.length > 0) 
{ 
    final StringBuilder imports = new StringBuilder(); 
    for (final String modulePath : modulePaths) 
     imports.append("\nsys.path.append('" + modulePath + "')"); 
    interpreter.exec(imports.toString()); 
} 

だから、これを行うには、いつでも私たちが自由に使用できるインタープリタオブジェクトを用意する必要があります。 Pydevエディタで.pyファイルを開くと、インタプリタの新しいインスタンスが作成されることに気付きました。このインタプリタオブジェクトをコードに入れて操作する方法はありますか?

答えて

0

独自のjythonインタープリタをorg.python.pydev.ui.interpreters.JythonInterpreterManagerで設定し、必要に応じてorg.python.pydev.ui.interpreters.AbstractInterpreterManager.setInfos(IInterpreterInfo[], Set<String>, IProgressMonitor)メソッドで設定する必要があります。

+0

代わりにjythonスタンドアロンのjarを設定しようとしているので、インタープリタを設定するときにいくつかの問題がありましたが、これを試しました(https://stackoverflow.com/questions/10587681/adding-python-interpreters-programmaticallyに似ています)。実行可能ファイル(実行可能ファイルはありません)の私たちがインスタンス化しているPythonInterpreterオブジェクトを使うべきか、独自のモジュールとハンドラでPyDevのPythonInterpreterオブジェクトを拡張するべきかPyDevに認識させる方法はわかりません。 –

+0

私はあなたが意味することを正確には得ていませんでした...どの問題?また、jythonは常に実行可能ではなく.jarとして設定されているため、動作していないものや自分のモジュールやハンドラについてはどういう意味ですか? –

+0

私はより詳細な説明で説明を拡張します。 –

関連する問題