У меня есть фрагмент скрипта Python, где мне нужно вызвать функцию main(argv)
из другого скрипта. Другой (назовите его second.py
) с main()
также имеет некоторые другие функции, которые будут вызваны позже при вызове main(argv)
, например, check1
, check2
и т. Д. Существует точка входа там же определен скрипт:
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
Итак, мой вопрос: когда я звонил на main
из другого скрипта, у меня возникают ошибки, я хочу вызвать эту функцию в первом скрипте, как я могу достичь этой цели?
Для получения дополнительной информации, вот как main(argv)
выглядит в first.py
:
def main(argv):
args = _parse_args(argv)
settings = {
"branch" : args.branch
}
if settings["branch"] == "master"
check1()
else:
check2()
И _parse_args(args)
- это интерфейс командной строки:
def _parse_args(args):
parser = argparse.ArgumentParser(description="something",
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument("-b",
"--branch",
dest="branch",
type=check_non_empty_string,
help="The current branch",
required=True
)
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers
nargs="*")
return parser.parse_args(args)
То, как я вызываю функцию main()
в первом модуле, выглядит следующим образом:
call = second.main(sys.argv[1:])
. Любая помощь будет оценена.
Журналы сообщений трассировки:
File "/src/first.py", line 91, in deliver_table
call = second.main(sys.argv[1:])
File "/src/second.py", line 427, in main
args = _parse_args(argv)
File "/src/second.py", line 51, in _parse_args
return parser.parse_args(args)
File "/app/python/2.7.5/LMWP3/lib/python2.7/argparse.py", line 1688, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "/app/python/2.7.5/LMWP3/lib/python2.7/argparse.py", line 1720, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "/app/python/2.7.5/LMWP3/lib/python2.7/argparse.py", line 1944, in _parse_known_args
self.error(_('argument %s is required') % name)
File "/app/python/2.7.5/LMWP3/lib/python2.7/argparse.py", line 2361, in error
self.exit(2, _('%s: error: %s\n') % (self.prog, message))
File "/app/python/2.7.5/LMWP3/lib/python2.7/argparse.py", line 2349, in exit
_ sys.exit(status)
SystemExit: 2