代码之家  ›  专栏  ›  技术社区  ›  Aliaksei Laurynovich

python错误:需要以下参数

  •  1
  • Aliaksei Laurynovich  · 技术社区  · 6 年前

    我有一个python脚本,它在通过命令行执行时工作得很好。 我要做的是将这个脚本导入到另一个python文件并从那里运行它。

    问题是初始脚本需要参数。定义如下:

    #file one.py
    def main(*args):
       import argparse
    
       parser = argparse.ArgumentParser(description='MyApp')
       parser.add_argument('-o','--output',dest='output', help='Output file image', default='output.png')
       parser.add_argument('files', metavar='IMAGE', nargs='+', help='Input image file(s)')
    
       a = parser.parse_args()
    

    我将此脚本导入到另一个文件并传递了参数:

    #file two.py
    import one
    one.main('-o file.png', 'image1.png', 'image2.png')
    

    但是,尽管我将输入图像定义为参数,但仍然出现以下错误:

    usage: two.py [-h] [-o OUTPUT] 
              IMAGE [IMAGE ...]
    two.py: error: the following arguments are required: IMAGE
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Hans    6 年前

    打电话时 argparse 参数不是来自 sys.argv 你得叫它

    parser.parse_args(args)
    

    而不是仅仅

    parser.parse_args()