新しいjython.jarをPyDevに適用する適切な方法は何ですか?
起動時にJythonインタープリターを提供する必要があるため、このオプションが利用できることを期待しています。混合バージョンを使用すると、問題が発生する可能性があります。そのインタープリターのjython.jarは、スタンドアロンのJythonを実行するだけでなく、すべてに使用されることを期待していましたが、そうではないようです。
org.python.pydev.jythonがjython.jarのバージョンを提供していると思います。PyDev 2.7.1のこのプラグインのバージョンには、このプラグインをインポートしたときにランタイムクラスパスにあるpydev-jython.jarがあります。(インポートにより、構成済みのJythonインタープリターのディレクトリーのコピーも作成されます。)
PyDevに別のjython.jarを使用させるにはどうすればよいですか?
ここにいくつかの背景情報があります。
EclipseにPyDevをインストールするためのPyDevWebサイトの指示に従いました。Jython2.5.3をインタープリターとして構成しました。
Jythonコンソールを開いて、次を実行できます。
>>> import org.python.core.PySystemState as pss
>>> st = pss()
>>> st.getBuiltins
<bound method <reflected field public org.python.core.PyObject org.python.core.PySystemState.__name__ at 0x1>.getBuiltins of <module 'sys' (built-in)>>
また、JythonRunとして実行しているPythonモジュールからこれを行うのにも問題はありません。
ただし、JavaからgetBuiltinsにアクセスしようとすると、メソッドgetBuiltinsがPySystemStateに対して定義されていないことを示すコンパイル時エラーが発生します。私はこの問題と広範囲にわたって戦ってきたので、org.python.pydev.jythonがjython.jarを提供しているのに対し、インタープリター構成はJythonインタープリターの実行にのみ使用されていると思います。
明らかに、org.python.core.PySystemStateをインポートしても苦情がないため、一部のjython.jarがクラスパスに含まれています。症状は、Jython2.5.3の完全なAPIを備えていない古いjython.jarと一致しています。
どんな助けでもいただければ幸いです-私は別のタンブルウィードブロンズを獲得したくないです!:-)