python - 子进程 check_output 返回非零退出状态 1

标签 python python-3.x subprocess

这是我的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))

关于python - 子进程 check_output 返回非零退出状态 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920837/

相关文章:

python - 从 python 执行 .jar 文件

python - 如何捕获 stdout/stderr 以外的子进程的输出?

python - AmazonS3 - 根据特定权限与 Python Boto 连接

python - 在指定范围内查找系列中两个数字的索引的算法

python - 如何从 npy.gz 文件中恢复一个 numpy 数组

Python线程运行()阻塞

python - 在subprocess.Popen中,bufsize适用于哪个文件?

python - 如何过滤字典以匹配我的 ndb.Model 子类的属性

python - 我怎样才能只将 1 个结果打印到控制台而不是两个?

python-3.x - 如何使用 Python 和 ask-sdk( intent 链接)将 intent 委托(delegate)给 Alexa?