为什么Jython找不到这个模块?

时间:2011-02-17 22:56:45

标签: java python jython

  

可能重复:
  How to run a python script from java?

我正在使用Jython运行Python脚本并收到此错误:

线程中的异常“main”Traceback(最里面的最后一个):文件“C:\ Facebook \ LoginPython \ Facebook.py”,第5行,在? ImportError:没有名为cookielib的模块

为什么这不起作用?

2 个答案:

答案 0 :(得分:2)

关于使用Jython的更多信息 - 我也有同样的问题。请注意,这可能不是最好的方法,但它对我来说很好。

我假设您要从Java代码中调用模块栏中的函数foo,它接受一个字符串参数并返回一个字符串:

    PythonInterpreter interpreter = new PythonInterpreter();
    // Append directory containing module to python search path and import it
    interpreter.exec("import sys\n" + "sys.path.append(pathToModule)\n" + 
    "from bar import foo");
    PyObject meth = interpreter.get("foo");
    PyObject result = meth.__call__(new PyString("Test!"));
    String real_result = (String) result.__tojava__(String.class);

只有在默认情况下您的模块不是Python搜索路径的一部分时才需要sys.path.append()部分,如果导入或模块找不到错误,这可能就是问题。 你还需要在java和python版本之间转换对象,如果需要你需要查看它,到目前为止我只需要易于构建的基本类型,不确定它是否对于任意java对象都很容易。< / p>

答案 1 :(得分:1)

使用Jython在JVM上运行Python。使用PyDev在Eclipse上使用Python(或Jython)进行开发。