2012-11-16 51 views
0

將新的jython.jar應用於PyDev的正確方法是什麼?更新PyDev中的jython.jar

我希望這個選項可用,因爲我必須在啓動時提供Jython解釋器。使用混合版本可能會導致問題。我預計該解釋器的jython.jar將用於所有內容,而不僅僅是運行獨立的Jython,但似乎並非如此。

我相信org.python.pydev.jython提供了jython.jar的一個版本。 PyDev 2.7.1中這個插件的版本有一個pydev-jython.jar,當我導入這個插件時,它在運行時類路徑上。 (導入也會複製配置好的Jython解釋器的目錄。)

如何讓PyDev使用不同的jython.jar?

這是一些更多的背景信息。

我按照PyDev網站上的說明在Eclipse中安裝PyDev。我已經配置了Jython 2.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)>> 

我也沒有問題,從我運行爲Jython運行Python模塊這樣做。

但是,當我嘗試從java訪問getBuiltins時,出現編譯時錯誤,指出方法getBuiltins沒有爲PySystemState定義。由於我廣泛地討論了這個問題,我相信發生的事情是org.python.pydev.jython提供了jython.jar,而解釋器配置僅用於運行Jython解釋器。

顯然,一些jython.jar在我的類路徑中,因爲我在導入org.python.core.PySystemState時沒有收到投訴。這些症狀與沒有Jython 2.5.3的完整API的較舊的jython.jar一致。

任何幫助將不勝感激 - 我不希望再獲得另一個風滾草銅牌! :-)

回答

0

事實證明,我試圖做的事情需要訪問新的jython.jar。它與PyDev無關。我剛剛從jython.jar創建了一個插件並引用它。

我認爲PyDev存在問題,因爲classpath和jythonpath從java應用程序自動工作,但不能從插件產品配置工作。事實證明,Eclipse在一個案例中爲我處理它,而不是另一個。 PyDev根本沒有被調用。