私は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()