我认为您正在处理http://bugs.python.org/issue9253中讨论的错误
您
subparsers是一个位置论点。除非
nargs='?'(或*),否则总是需要这种参数。我认为这就是为什么您在2.7中收到错误消息的原因。
但是在最新的py
3发行版中,更改了测试所需参数的方法,并且使次解析器陷入了困境。现在,它们是
optional必需的。有一个建议的补丁/软糖可以
argparse像以前一样运行(需要子解析器条目)。我希望最终py3
argparse会还原为py2实践(可以接受
required=False参数)。
因此
args.sp is None,您可能需要
sys.argv[1:]在致电之前进行测试,而不是进行测试
parse_args。
Ipython这样做是为了产生自己的帮助消息。



