gpt4 book ai didi

java - python 的打印导致 ProcessBuilder Java 中出现错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:43 25 4
gpt4 key购买 nike

我正在尝试使用 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 中,您必须为 print 函数添加括号。由于某些原因(例如系统缓存),您的 ProcessBuilder 使用 python 3 来运行 python 代码。这个问题应该通过重新启动计算机来解决,但如果不起作用,您可以使用 python 2.x 手动运行它例如:

List<String> list = Arrays.asList("C:/python27/python.exe", "C:/.../test.py");
ProcessBuilder pb = new ProcessBuilder(list);

关于java - python 的打印导致 ProcessBuilder Java 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40836734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com