0

我正在使用 org.python.util.PythonInterpreter 类在 java 中执行 python 代码。请在我的代码片段下面找到。

PythonInterpreter pythonInterpreter = new PythonInterpreter(null, new PySystemState());

ByteArrayOutputStream outStream = new ByteArrayOutputStream(16384);

pythonInterpreter.setOut(outStream);
pythonInterpreter.setErr(outStream);

// execute the code
pythonInterpreter.exec(script);

String consoleOutput = outStream.toString();
outStream.flush();

System.out.println("Console output :- "+consoleOutput);

上面代码的问题在于同一个脚本,有时我会得到“consoleOutput”为空。我无法弄清楚问题所在。对于运行上述代码 1000 次,至少有 4 次我得到空输出。

另一方面,如果我使用如下所示的默认构造函数,它就可以正常工作

PythonInterpreter pythonInterpreter = new PythonInterpreter();
4

1 回答 1

0

深入挖掘我发现的问题,将属性设置python.site.importfalse触发此问题。此问题出现在 Jython 独立版本 2.7.0 中。更新到独立 jar (2.7.1) 的 2017 年 6 月版本可修复此问题。

于 2017-11-08T19:31:25.027 回答