Python optparse:parse.error()----> TypeError:error()缺少1个必需的位置参数:'msg'

时间:2015-03-29 00:24:55

标签: python typeerror parse-error optparse msg

我在新的Python 3.4.3上运行此Trace Route模块时遇到问题。在以前版本的python上,我能够运行模块,但现在我无法运行。当我尝试调用optparse的parser.error()函数时,我一直收到此Traceback错误。

TypeError: error() missing 1 required positional argument: 'msg'* 

以下是我的代码片段

if __name__ == "__main__":
    parser = optparse.OptionParser(usage="%prog [options] hostname")
    parser.add_option("-p", "--port", dest="port",
                      help="Port to use for socket connection [default:%default]",
                      default=33434, metavar="PORT")
    parser.add_option("-m", "--max-hops", dest="max_hops",
                      help="Max hops before giving up [default: %default]",
                      default=30, metavar="MAXHOPS")

    (options, args) = parser.parse_args()
    if len(args) != 1:
        parser.error()
    else:
        dest_name = args[0]

    sys.exit(main(dest_name=dest_name,
        port=int(options.port),
        max_hops=int(options.max_hops)))

错误一直发生在“if”语句

if len(args) != 1:
    parser.error()

然后我尝试了这个

if len(args) != 1:
    parser.error("Incorrect number of arguments")

这次当我尝试运行模块时,我收到了此错误

  Usage: TraceRoute.py [options] hostname 
  TraceRoute.py: error: Incorrect number of arguments

我希望得到一些关于如何修复此代码以防止此错误的反馈以及有关如何在python 3.4.3中正确使用optparse库的更多信息

0 个答案:

没有答案