2015-11-25 2 views
1

У меня есть следующий код в скрипте python.python ArgumentParser - ошибка: непризнанные аргументы: ip_2 '127.0.0.1'`

parser.add_argument('ip_1', default="127.0.0.1", nargs="?", 
        help="The First IP address.") 
parser.add_argument('ip_2', default="127.0.0.1", nargs="?", 
         help="The Second IP address") 
parser.add_argument('--port', type=int, 
        help=port_1") 

Я выполняю скрипт из pycharm. Я указал следующее script parameters в PyCharm Run/Debug Configurations

ip_1 '127.200.300.400' ip_2 '127.0.0.1' --port_1=4444

Я получаю следующее сообщение об ошибке.

test.py: error: unrecognized arguments: ip_2 '127.0.0.1'

Что я делаю неправильно здесь.?

+0

Попробуйте использовать 'ip_1' и' ip_2'. Синтаксический анализатор (я думаю) автоматически назначит вам эти IP-адреса. –

ответ

1

Для аргумента argparse, если первый аргумент (dest) не имеет символа префикса (-), он будет рассматриваться просто как позиционный аргумент. Таким образом, в действительности с предоставленными аргументами parser.ip_1 будет 'ip_1' и parser.ip_2 будет '127.200.300.400'. Остальная часть аргумента будет просто рассматриваться как ошибка, поскольку они являются неожиданными. Просто опустите строки ip_1 и ip_2 для параметров скрипта (а также введите --port=4444 вместо --port_1) сделают то, что вы ожидаете от этого.

Смежные вопросы