繁体   English   中英

python的print在ProcessBuilder Java中导致错误

[英]python's print causing errors in ProcessBuilder Java

我正在尝试在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但仍然收到错误。 我在网上找不到任何类似的错误。

这是一个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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM