我有一个奇怪的问题。所以我正在编写一个程序,它使用Python作为简单的用户脚本界面。但为了让我的问题变得简单......我试图使用PythonInterpreter.set将Python解释器中的变量设置为String值。但是当我设置它时,我得到了这个例外:
LookupError: no codec search functions registered: can't find encoding
以下是我的代码:
package demo;
import org.python.util.PythonInterpreter;
public class Application {
public static void main(String[] args) {
PythonInterpreter pi = new PythonInterpreter();
String greeting = "Jesus Christ";
Integer times = 6;
pi.exec("actor = 'Lucy'");
pi.set("greeting", greeting);
pi.set("times", times);
pi.exec("print '%s %s' % (greeting, actor)");
pi.exec("print \"%s %s \\n\" % (greeting, actor) * times");
System.out.println("RESULT: " + pi.eval("actor == 'Lucy'"));
System.out.println("ACTOR: " + pi.get("actor"));
}
}
如果您需要查看我的项目的pom文件,我可以包含它,但实际上我只安装了Jython 2.5.0库。我想知道我是否需要在我的系统上安装其他东西,除了让maven为我安装这个库。我在这台计算机上安装了Python,并在环境变量中设置了PYTHON_HOME。我做错了什么?
编辑:行:
pi.set("times", times);
......工作正常。
但是...
pi.set("greeting", greeting);
没有。我想它有时候是原始数据类型,问候语是String。