当前位置: 首页 > 面试题库 >

子流程check_output返回非零退出状态1

戴正阳
2023-03-14
问题内容

这是我的python代码:

import subprocess
subprocess.check_output("ls",shell=True,stderr=subprocess.STDOUT)

import subprocess
subprocess.check_output("yum",shell=True,stderr=subprocess.STDOUT)

第一个.check_output()工作良好,但是第二个返回此:

Traceback (most recent call last):
File "/usr/lib/x86_64-linux-gnu/gedit/plugins/pythonconsole/console.py", line 378, in __run
r = eval(command, self.namespace, self.namespace)
File "<string>", line 1, in <module>
File "/usr/lib/python3.4/subprocess.py", line 616, in check_output
raise CalledProcessError(retcode, process.args, output=output)
subprocess.CalledProcessError: Command 'yum' returned non-zero exit status 1

为什么会这样?是因为ls原始的shell命令而是yum新的软件包吗?我怎么解决这个问题?


问题答案:

yum您启动的命令已正确执行。它返回非零状态,这意味着在处理命令期间发生了错误。您可能想在yum命令中添加一些参数来解决该问题。

您的代码可能以这种方式显示此错误:

import subprocess
try:
    subprocess.check_output("dir /f",shell=True,stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
    raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 子流程check_output返回非零退出状态1 (2个答案) 3年前关闭。 执行以下脚本… […] …导致错误: CalledProcessError:命令’[ping’,’-q’,’-c2’,’-W1’,‘10 .81.3.80’]’返回非零退出状态1 在中添加“ stderr = STDOUT”不会产生任何有用的反馈。 如何获取有关该错误的更多信息

  • 问题内容: 我在Ubuntu 13.10机器上安装XML和RCurl时遇到麻烦。我今天执行了所有sudo更新和升级。 我正在尝试将拨浪鼓用于R。我无法安装使用拨浪鼓所需的“ XML”。一年后,这里几乎是同一问题,只是操作系统不同。以下是我返回的错误消息: 不太确定如何从这里继续。 问题答案: 在Ubuntu上安装curl和xml。跑 R中安装的软件包上的错误消息表示curl和xml库不存在或找不到

  • 问题内容: 我的python脚本(python 3.4.3)通过子进程调用bash脚本: 该 bashscript 包含以下行: 这将打开与某个远程主机的共享主连接,以允许进行一些后续操作。 执行python脚本时,它将提示输入该行的密码,但是在输入密码后它将阻塞,并且永远不会返回。当我按ctrl- C终止脚本时,我看到连接已正确建立(因此行已成功执行)。 使用代替时,我没有此阻塞问题,但不检索标

  • 让我们假设你要复制一个目录。你可以通过键入cp -vR /old/dir/path /new/dir/path来执行此操作。发出此命令后,你可能想知道如何进行。目录是否被复制?还是出现了一些错误,因为目标目录空间不足,或其他出现错误的东西? 为了理解它是如何工作的,你必须了解两个程序如何通信。我们先这样说,bash 只是另一个程序,所以一般来说,当你发出上述的cp命令时,一个程序(bash,它是父

  • 这就是我的情况。 我希望能够退出具有非零值的RC/RC1。当执行以下代码时,如果RC为0,则返回带有非零退出代码的RC1(最佳情况),如果RC为非零且RC1也非零,则我将错过RC1的退出代码(意味着我将无法使用RC1的退出代码)。如何发送正确的退出代码?本质上,我想通过电子邮件发送非零变量