Ошибка argparse Python: ошибка: количество аргументов: недопустимое значение int - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь запустить приведенный ниже код в блокноте jupyter.

import argparse
parser = argparse.ArgumentParser(description='Example with non-optional arguments')
parser.add_argument('count', action="store", type=int)
parser.add_argument('units', action="store")
print(parser.parse_args())

, но это дает следующее сообщение об ошибке

usage: ipykernel_launcher.py [-h] count units
ipykernel_launcher.py: error: argument count: invalid int value: 'C:\\Users\\Kwan Lee\\AppData\\Roaming\\jupyter\\runtime\\kernel-76bf5bb5-ea74-42d5-8164-5c56b75bfafc.json'
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2


c:\users\kwan lee\anaconda2\envs\tensorflow\lib\site-packages\IPython\core\interactiveshell.py:2971: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

Я просто пытаюсь узнать, что такое argparse, но яне получить эту ошибку.

1 Ответ

0 голосов
/ 16 мая 2018

Обычно такой скрипт запускается как отдельный файл, например,

python foo.py 23 inches

Оболочка преобразует «23 дюйма» в список строк, который доступен как sys.argv[1:] внутри программы.

parser.parse_args()

использует это sys.argv[1:] по умолчанию.Но при запуске из сеанса Ipython или ноутбука этот список содержит значения, которые инициализировали сеанс.Это имя файла, указанное как недопустимое целочисленное значение, было частью этой инициализации и не может быть использовано вашим parser.

. Чтобы протестировать этот скрипт, вам нужно предоставить соответствующий список строк, например,

parser.parse_args(['23', 'lbs'])

Или импортируйте sys и измените sys.argv, как описано в одном из связанных ответов.

https://docs.python.org/3/library/argparse.html#beyond-sys-argv

...