【发布时间】:2017-07-04 03:35:16
【问题描述】:
我正在学习 Python 的基础知识,并且已经在 argparse 教程的开头卡住了。我收到以下错误:
import argparse
parser = argparse.ArgumentParser()
args = parser.parse_args()
usage: __main__.py [-h] echo
__main__.py: error: unrecognized arguments: -f
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
%tb 命令给出以下输出:
SystemExit Traceback (most recent call last)
<ipython-input-16-843cc484f12f> in <module>()
----> 1 args = parser.parse_args()
C:\Users\Haik\Anaconda2\lib\argparse.pyc in parse_args(self, args, namespace)
1702 if argv:
1703 msg = _('unrecognized arguments: %s')
-> 1704 self.error(msg % ' '.join(argv))
1705 return args
1706
C:\Users\Haik\Anaconda2\lib\argparse.pyc in error(self, message)
2372 """
2373 self.print_usage(_sys.stderr)
-> 2374 self.exit(2, _('%s: error: %s\n') % (self.prog, message))
C:\Users\Haik\Anaconda2\lib\argparse.pyc in exit(self, status, message)
2360 if message:
2361 self._print_message(message, _sys.stderr)
-> 2362 _sys.exit(status)
2363
2364 def error(self, message):
SystemExit: 2
我该如何解决这个问题?
【问题讨论】:
-
你不能在 ipython 中轻易地试验这个,因为在
parse_args中默认使用 ipython 命令行。尝试使用普通的*.py文件和 python 可执行文件来启动该文件。 -
见argparse。它会帮助你,或者肯定会帮助别人
-
我已经复制了你的代码,我没有发现任何问题。您是否在 .py 文件中尝试过,而不是其他方式?
-
在 ipython 中,您可以将参数列表传递给解析器。来自 argparse 文档:
parser.parse_args(['--sum', '7', '-1', '42'])或parser.parse_args('--sum 7 -1 42'.split() ) -
感谢你们立即帮助指出我的错误所在并提供替代方法,我尝试了不同的方法,但都是使用 ipython 而不是“正常”*.py
标签: python jupyter-notebook ipython argparse