以下不是python语言特点的是:Python error: the following arguments are requi

关于以下不是python语言特点的是的问题,在the following arguments are required:中经常遇到, 我有通过命令行执行它时运行良好的 Python 脚本。我想要做的是将此脚本导入另一个 python 文件并从那里运行它。

我有通过命令行执行它时运行良好的 Python 脚本。我想要做的是将此脚本导入另一个 python 文件并从那里运行它。

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

#file one.py
def main(*args):
   import argp
   pr = argp.ArgumentPr(description='MyApp')
   pr.add_argument('-o','--output',dest='output', help='Output file image', default='output.png')
   pr.add_argument('files', metavar='IMAGE', nargs='+', help='Input image file(s)')
   a = pr.p_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
11

当调用argp与参数不是从sys.argv你必须调用它

pr.p_args(args)

而不仅仅是

pr.p_args()
2

如果您的MAIN不是 def / 函数,则可以模拟传入的 args:

if __name__=='__main__':
    # Set up command-line arguments
    pr = ArgumentPr(description="Simple employee shift roster generator.")
    pr.add_argument("constraints_file", type=FileType('r'),
                        help="Configuration file containing staff constraints.")
    pr.add_argument("first_day", type=str,
                        help="Date of first day of roster (dd/mm/yy)")
    pr.add_argument("last_day", type=str,
                        help="Date of last day of roster (dd/mm/yy)") 
    #Simulate the args to be expected...   <--- SEE HERE!!!
    argv = ["",".\constraints.txt", "1/5/13", "1/6/13"]
    # P arguments
    args = pr.p_args(argv[1:])

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(438)
链接打开小程序:如何仅在y轴上打开小刻度matplotlib
上一篇
宏鼠标一键鬼跳cf编程设置:用于游戏的 Python一键宏
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(80条)