将新的jython.jar应用于PyDev的正确方法是什么?
我希望这个选项可用,因为我必须在启动时提供一个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 Run运行的python模块中执行此操作也没有问题。
但是,当我尝试从java访问getBuiltins时,我收到一个编译时错误,指出没有为PySystemState定义方法getBuiltins。由于我已经广泛地解决了这个问题,我相信正在发生的是org.python.pydev.jython提供了jython.jar,而解释器配置仅用于运行Jython解释器。
显然,一些jython.jar在我的类路径中,因为我在导入org.python.core.PySystemState时没有投诉。这些症状与较旧的jython.jar一致,它没有完整的Jython 2.5.3 API。
任何帮助都会受到赞赏 - 我宁愿不再获得另一个风滚草铜牌! : - )
答案 0 :(得分:0)
事实证明,我试图做的事情需要访问一个新的jython.jar。它与PyDev无关。我刚刚从jython.jar创建了一个插件并引用它。
我认为PyDev存在问题,因为classpath和jythonpath从java应用程序自动运行,但不是从插件产品配置运行。事实证明Eclipse在一个案例中为我处理它而不是另一个案例。 PyDev根本没有被调用。