【问题标题】:how to add module of python into java using jython jar如何使用 jython jar 将 python 模块添加到 java 中
【发布时间】:2012-12-24 10:54:03
【问题描述】:

我使用 Netbeans 平台使用 java 语言构建我的应用程序。我需要使用 jython 将一些 python 函数调用到 java 类中是唯一的方法。 不幸的是,当我尝试运行该程序时,出现一个错误,表明该应用程序没有找到以下模块

Exception in thread "main" Traceback (most recent call last):

File "script.py", line 13, in <module>
    import re
ImportError: No module named re
  File "script.py", line 14, in <module>
    from string import *
ImportError: No module named string
Java Result: 1 

这是 script.py 中的代码,我想将其中一个方法调用到我的 java 类中

#!/pkg/ldc/bin/python2.1

import xml.parsers.expat
import re
from string import *
import sys

如何将这些 python 模块添加到我的应用程序中?

【问题讨论】:

  • 当您单独执行脚本时会发生什么(即,仅来自终端的jython script.py)?
  • 你的 PYTHONPATH 是否正确?它应该包括 python 库的位置。

标签: java python netbeans python-2.7 jython


【解决方案1】:

以下代码在我的带有 Jython 2.7 和 Java 1.6 的 Ubuntu 机器上运行良好(使用 Eclipse 和终端测试):

package myjythonproject;
import org.python.util.PythonInterpreter;

public class MyJythonProject {

    public static void main(String[] args) {
        try
        {
            PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
            PythonInterpreter interp = new PythonInterpreter();
            interp.execfile("/home/vicent/foo.py");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

只需确保在您的类路径中使用 jython.jar 进行编译和执行。

更新

我刚刚在我的 Ubuntu 机器上安装了 NetBeans 7.2.1(Java SE 版本),创建了一个新的 Java 项目 MyJythonProject,并将上面显示的代码添加到 MyJythonProject.java 文件中。然后在项目的Properties 对话框中,我在左侧窗格中选择了Libraries。在右窗格中,我选择了Compile 选项卡,单击Add JARF/folder 按钮并选择了我的jython jar (/opt/jython2.7a2/jython.jar)。我已经关闭了对话框并在主窗口的Run 菜单中选择了Clean and Build Project (MyJythonProject)。之后我运行了这个项目,它就像一个魅力。不需要 Python/Jython 插件,只需告诉您的项目 jython.jar 的安装位置即可。

更新 2

另请注意,Jython 不支持 Python3,因此您必须使用 Python2.x 解释器。

【讨论】:

  • 仍然出错 :(。我将 jython.jar 添加到我的 Netbeans 库中知道吗?
  • 你的IDE配置好了吗?我不使用 NetBeans,但 this link 可能会有所帮助。
  • 问题是我正在使用 Netbeans 7.2.1 并且要添加 python 插件,我必须降级到 6.5,这在我的代码中提示了很多问题。我还尝试了多种方法将 python 插件添加到 Netbeans 7.2 中。但他们都以失败告终。我认为有一种简单的方法可以配置 python 库的路径。就像现在我下载了 python 并使用 Properties props = new Properties(); 来引用它。 props.setProperty("python.path", "C:\\Python33"); PythonInterpreter.initialize(System.getProperties(), props,new String[] {""});不幸的是仍然得到同样的错误是因为我的路径语法?!
  • 请看我的更新。如果它对你没有帮助,那么我会放弃 :) 再想一想,Jython 还不支持 AFAIK Python3,所以你应该使用 Python2.x 解释器。
  • 非常感谢,效果很好:)。中继感谢您的时间和这个有用的答案。非常感谢
猜你喜欢
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2019-04-11
  • 2013-11-01
  • 2010-12-16
  • 2021-04-19
相关资源
最近更新 更多