public class PyInterpreter {
PythonInterpreter interpreter = null;
public PyInterpreter() {
PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
this.interpreter = new PythonInterpreter();
}
void execfile(final String fileName){
this.interpreter.execfile(fileName);
}
PyInstance createClass(final String className, final String opts)
{
return (PyInstance) this.interpreter.eval(className + "("+ opts+ ")");
}
public static void main(String args[]){
PyInterpreter py = new PyInterpreter();
py.execfile("hello.py");
PyInstance hello = py.createClass("Hello", "None");
hello.invoke("run");
}
}
这是一个Maven项目,因此我添加了jython依赖项(2.7.0)。当我尝试执行main方法时,它显示:
线程“主”中的异常ImportError:无法导入站点模块及其依赖项:没有名为site的模块 确定以下属性是否正确: * sys.path:['C:\ Users \ narendrar \ .m2 \ repository \ org \ python \ jython \ 2.7.0 \ Lib',' classpath ',' pyclasspath /'] 此属性可能包含错误的目录,例如来自CPython的目录 * sys.prefix:C:\ Users \ narendrar.m2 \ repository \ org \ python \ jython \ 2.7.0 尽管可以通过系统属性python.home设置此属性, 通常会根据Jython jar文件的位置自动确定
P.S-我已经从stackoverflow本身复制了此代码以进行测试。