Martin Panter added the comment: I suggest this is a duplicate of Issue 15112. The same problem also happens with nargs="*", and that issue apparently has a patch to handle both cases.
For the record, this is the resulting error, and a demo that it works if the option comes before the positional arguments: >>> print("test 2:", ap.parse_args(["abc", "--option", "mmm"])) usage: [-h] [--option] arg_1 [arg_2] : error: unrecognized arguments: mmm Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/proj/python/cpython/Lib/argparse.py", line 1729, in parse_args self.error(msg % ' '.join(argv)) File "/home/proj/python/cpython/Lib/argparse.py", line 2385, in error self.exit(2, _('%(prog)s: error: %(message)s\n') % args) File "/home/proj/python/cpython/Lib/argparse.py", line 2372, in exit _sys.exit(status) File "/home/pythonstartup.py", line 345, in exit raise SystemExit(code) __main__.SystemExit: 2 >>> ap.parse_args(["--option", "abc", "mmm"]) Namespace(arg_1='abc', arg_2='mmm', option=True) ---------- nosy: +vadmium resolution: -> duplicate stage: -> resolved status: open -> closed superseder: -> argparse: nargs='*' positional argument doesn't accept any items if preceded by an option and another positional title: argparse parsing bug -> argparse parsing (mingling --option and optional positional argument) _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24223> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com