Python子进程没有属性“check_output”

时间:2017-09-12 15:15:09

标签: python-2.7 subprocess

我的代码使用subprocess.check_output就好了,我不得不重新安装Ubuntu 16.04,然后它抱怨它现在找不到属性check_output。

import subprocess

p = subprocess.check_output("here is a command", shell=True)

/usr/bin/python2.7 /home/username/subprocess.py
Traceback (most recent call last):
  File "/home/username/subprocess.py", line 1, in <module>
    import subprocess
  File "/home/username/subprocess.py", line 4, in <module>
    p = subprocess.check_output("here is a command", shell=True)
AttributeError: 'module' object has no attribute 'check_output'

请注意,我使用的是Python2.7,根据这篇文章,这里应该解决这个问题,但事实并非如此。

subprocess.check_output() module object has out attribute 'check_output'

是什么给出的?我尝试了pip install subprocess或pip uninstall subprocess但没有运气。如何将subprocess更新为最新版本,使其具有check_output属性?我不想使用Popen

1 个答案:

答案 0 :(得分:1)

您的问题是您创建了一个名为subprocess.py的脚本,因此原始库subprocess被您的模块“覆盖”了。

将脚本 /home/username/subprocess.py 重命名为不是标准Python模块名称的内容!这条规则当然适用于所有其他Python库!