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?

这里有一些更多的背景信息。

我已按照 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 时,我收到一个编译时错误,指出方法 getBuiltins 没有为 PySystemState 定义。由于我与这个问题进行了广泛的斗争,我相信发生的事情是 org.python.pydev.jython 提供 jython.jar 而解释器配置仅用于运行 Jython 解释器。

显然,一些 jython.jar 在我的类路径中,因为我在导入 org.python.core.PySystemState 时没有收到任何投诉。这些症状与没有 Jython 2.5.3 完整 API 的旧 jython.jar 一致。

任何帮助将不胜感激——我不想再获得风滚草青铜!:-)

4

1 回答 1

0

事实证明,我试图做的事情需要访问一个新的 jython.jar。它与 PyDev 无关。我刚刚从 jython.jar 创建了一个插件并引用了它。

我认为 PyDev 存在问题,因为 classpath 和 jythonpath 可以从 java 应用程序自动运行,但不能从插件产品配置中自动运行。事实证明 Eclipse 是在一种情况下为我处理它,而不是在另一种情况下。PyDev 根本没有涉及。

于 2012-11-21T17:59:19.917 回答