为什么当 运行 "python --version" 来自 groovy 时标准输出为空?

Why is the stdout empty when running "python --version" from groovy?

我目前正在为 Apache PLC4X 项目编写飞行前检查脚本。我在那里检查是否存在所需的第三方工具及其版本。

如果我在命令行上 运行 "python --version",我会得到很好的响应。

但是如果我 运行 它在 Groovy:

print "Detecting Python version: "
def output = ("python --version").execute().text

我刚得到一个空字符串。 所有其他工具都不会显示此行为。所有其他人在 "output".

中都有控制台输出

我怎样才能做我想做的检查?我做错了什么?

不要假设您在终端上看到的所有内容都是标准输出。

信息性消息经常发送到标准错误,以避免它们被任何处理管道捕获(这就是为什么在早期的 UNIX 时代创建这两个通道的原因)。