天天看點

python非零傳回怎麼解決_python – 子程序check_output傳回非零退出狀态1

這是我的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 "", line 1, in

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,python-3-x,subprocess

來源: https://codeday.me/bug/20190923/1815293.html