Python 错误 : the following arguments are required

标签 python python-import argparse args

我的 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

最佳答案

当使用不是来自 sys.argv 的参数调用 argparse 时,你必须调用它

parser.parse_args(args)

不仅仅是

parser.parse_args()

关于Python 错误 : the following arguments are required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172076/

相关文章:

具有两个以上点的 Python 相对导入

Python argparse : get an argument without parsing

python - argparse:位置参数的个人选择的使用报告?

python - 反向传播麻烦;总成本越来越高,直到无穷大

python - 使用views.py从urls.py捕获变量时遇到问题

python - Boost.Python | .so 文件中的符号,但我收到 ImportError : undefined symbol

python - 如何在同一个包中导入 __init__.py 中定义的类?

python - 对 argparse 感到困惑

python - 跨浏览器的 Jupyter Notebook 输出不一致

python - 如何在不启动实际测试的情况下获取 Robot Framework 中的测试用例列表?