34

我的除了有一个 SyntaxError:

try:
    opts, args = getopt.getopt(sys.argv[1:], 'P:D:H:d:u:p:nvhmJi:c:Ml:TB:',
            ['host=', 'port=', 'directory=', 'user=', 'password=',
             'daemon=', 'noauth', 'help', 'verbose', 'mysql', 
             'icounter=', 'config=', 'nolock', 'nomime', 'loglevel', 'noiter',
             'baseurl='])
except getopt.GetoptError, e:
    print usage
    print '>>>> ERROR: %s' % str(e)
    sys.exit(2)

我得到错误:

File "main.py", line 199

except getopt.GetoptError, e:

SyntaxError: invalid syntax

有人知道吗?

4

2 回答 2

56

您使用 python3 并且在 python3中 raise 语法不再接受逗号分隔的 arguments

改用as

except getopt.GetoptError as e:

这种形式也向后兼容 2.6 和 2.7。

于 2013-02-16T09:54:12.913 回答
8

您的语法对于捕获异常无效

你应该写except getopt.GetoptError as e: 而不是except getopt.GetoptError, e:

于 2013-02-16T09:30:58.633 回答