java利用Jython调用python抛出错误ImportError: No module named odbchelper

J2EE 码拜 10年前 (2015-04-13) 4333次浏览 0个评论

Python代码:
import odbchelper

def add(x, y):
    “””
        add method
    “””
    return x+y

def sub(x, y):
    “””
        subtraction method
    “””
    return x-y

def invokeOdbchelper():
    “””
        invoking odbchelper.py buildConnectingString()
    “””
    myParams = {“server”:”mpilgrim”, \
“database”:”master”, \
“uid”:”sa”, \
“pwd”:”secret”
}
    return odbchelper.buildConnectionString(myParams)

if __name__ == “__main__”:

        print(add(10, 20))
        print(sub(20, 19))
        print(invokeOdbchelper())

java代码:
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

public class FirstJavaScript
{
public static void main(String args[])
{

PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile(“E:\_Python\diveintopythonzh-cn-5.4b\py_test\pythonTest.py”);
PyFunction func = (PyFunction)interpreter.get(“add”,PyFunction.class);

int a = 2010, b = 2 ;
PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
System.out.println(“anwser = ” + pyobj.toString());

}//main
}

运行后抛出错误:

Exception in thread “main” Traceback (most recent call last):
  File “E:\_Python\diveintopythonzh-cn-5.4b\py_test\pythonTest.py”, line 4, in <module>
    import odbchelper
ImportError: No module named odbchelper

求解答!!!!! 为什么会抛出如此错误,单独运行Python是正常的。。

java利用Jython调用python抛出错误ImportError: No module named odbchelper
20分
Process proc = Runtime.getRuntime().exec(“python  E:\_Python\diveintopythonzh-cn-5.4b\py_test\pythonTest.py”);  
proc.waitFor();  
java利用Jython调用python抛出错误ImportError: No module named odbchelper
问题已经解决,,python中导入的库需要在java中提前导入一下,具体代码如下:

import org.python.core.Py;
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;

public class FirstJavaScript {
public static void main(String args[]) {
PythonInterpreter interpreter = new PythonInterpreter();

//‘odbchelper’是自定义的python库,在 Python 方法中我们需要用到这个库中的方法,所以需要提前导入进来
PySystemState sys = Py.getSystemState();
sys.path.add(“E:\_Python\diveintopythonzh-cn-5.4b\py”);
interpreter.exec(“import odbchelper”);

interpreter
.execfile(“E:\_Python\diveintopythonzh-cn-5.4b\py_test\pythonTest.py”);
PyFunction func = (PyFunction) interpreter.get(“add”, PyFunction.class);

int a = 2010, b = 2;
PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
System.out.println(“anwser = ” + pyobj.toString());

}// main
}

java利用Jython调用python抛出错误ImportError: No module named odbchelper
用你的方法试了,还是没反应,错误提示:File<String>,line 1,in <module> ImportError:No module named psycopg2

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java利用Jython调用python抛出错误ImportError: No module named odbchelper
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!