我试图在Java中使用ProcessBuilder来运行一些python代码。 print
导致错误,但print()
正常。
java代码是:
List<String> list = Arrays.asList("python", "C:/.../test.py");
ProcessBuilder pb = new ProcessBuilder(list);
Process process = pb.start();
如果test.py是这个
,它会生成一个文件open('C:/.../outputtest2.txt', 'a')
print(5)
但如果test.py是这个
,它就不起作用open('C:/.../outputtest2.txt', 'a')
print 5
如果我从命令行运行脚本,两者都可以正常工作。我已尝试更改甚至从PATH中删除Python 3但仍然收到错误。我无法在网上找到任何类似的错误。
答案 0 :(得分:0)
这是python语法错误。如您所知,在python 3中必须为打印功能加上括号。由于某些原因(例如系统缓存),您的ProcessBuilder
使用python 3运行您的python代码。
应该通过重新启动计算机来解决此问题,但是如果它不起作用,则可以使用python 2.x手动运行它。
例如:
List<String> list = Arrays.asList("C:/python27/python.exe", "C:/.../test.py");
ProcessBuilder pb = new ProcessBuilder(list);