0

新しい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と一致しています。

どんな助けでもいただければ幸いです-私は別のタンブルウィードブロンズを獲得したくないです!:-)

4

1 に答える 1

0

私がやろうとしていたことには、新しい jython.jar へのアクセスが必要だったことがわかりました。PyDev とは何の関係もありませんでした。jython.jar からプラグインを作成して参照しました。

クラスパスとjythonpathはJavaアプリからは自動的に機能しましたが、プラグイン製品の構成からは機能しなかったため、PyDevに問題があると思いました。あるケースではEclipseがそれを処理していて、別のケースでは処理していなかったことがわかりました。PyDev は単に関与していませんでした。

于 2012-11-21T17:59:19.917 に答える