Я написал команду с argparse, которая выглядит следующим образом:
parser = argparse.ArgumentParser("MY_CMD")
group = parser.add_mutually_exclusive_group()
group.add_argument('-b', '--binary', default=None, type=bytes)
group.add_argument('-s', '--string', default=None, type=str)
В Python 2.7 это работало отлично, но теперь выполняется переход на Python 3.7, если я пытаюсь запустить его так:
parser.parse_args(['-b', b"hello"])
Я получаю следующую ошибку:
File "C:\Python37\lib\argparse.py", line 1749, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "C:\Python37\lib\argparse.py", line 1781, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "C:\Python37\lib\argparse.py", line 1822, in _parse_known_args
option_tuple = self._parse_optional(arg_string)
File "C:\Python37\lib\argparse.py", line 2108, in _parse_optional
if not arg_string[0] in self.prefix_chars:
TypeError: 'in <string>' requires string as left operand, not int
Может кто-нибудь указать мне, как это можно исправить для Python 3?Заранее спасибо.