web-dev-qa-db-fra.com

Python: les arguments suivants sont requis

J'ai le script Python qui fonctionne bien lors de son exécution via la ligne de commande. Ce que j'essaie de faire est d'importer ce script dans un autre fichier python et exécutez-le à partir de là.

Le problème est que le script initial nécessite des arguments. Ils sont définis comme suit:

#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()

J'ai importé ce script dans un autre fichier et passé des arguments:

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

Mais bien que j'ai défini les images d'entrée comme arguments, j'ai quand même eu l'erreur suivante:

usage: two.py [-h] [-o OUTPUT] 
          IMAGE [IMAGE ...]
two.py: error: the following arguments are required: IMAGE
4

Lors de l'appel de argparse avec des arguments ne provenant pas de sys.argv vous devez l'appeler avec

parser.parse_args(args)

au lieu de juste

parser.parse_args()
4
Hans