AttributeError:'CalledProcessError'对象没有属性'output'

时间:2012-01-08 04:29:11

标签: python autokey

...在Ubuntu 10.04上使用AutoKey 0.81.4

  1. 相对较新的Linux(< 1yr)
  2. 这是我写的第一个python
  3. 以下AutoKey脚本因以下错误而失败。我没有到这里来的是什么?

    Script name: 'find files script'
    Traceback (most recent call last):
      File "/usr/lib/python2.6/dist-packages/autokey/service.py", line 442, in execute
        exec script.code in self.scope
      File "<string>", line 13, in <module>
    AttributeError: 'CalledProcessError' object has no attribute 'output'
    

    脚本

    import time
    
    time.sleep(0.10)
    retCode, args =  dialog.input_dialog("Files to Find","enter a file name")
    fmt = "find / -name \"{0}\" -type f -print 2>/dev/null "
    if retCode == 0:
        if len(args) > 0:
            cmd = fmt.format(args)
            #dialog.info_dialog(title="the command",message=cmd)
            try:
                rc = system.exec_command(cmd, getOutput=True)
            except subprocess.CalledProcessError, e:
                dialog.info_dialog(title="the return",message=str(e.output))
    

2 个答案:

答案 0 :(得分:0)

输出属性在Python 2.6之前不存在。您可以使用subprocess.Popen和communic()。或者您可以在this之后向后端口subprocess.check_output(也不在2.6中)。

答案 1 :(得分:-1)

将e.output更改为e。使用str(e)将获得错误字符串。您可能希望查找异常以找出它们支持的属性。我认为输出不是其中之一。