2017-06-05 163 views
0

问题是我无法完成运行最简单命令的第一步。当我写这篇文章的代码如何解决无法识别的参数错误?

import argparse 
parser = argparse.ArgumentParser() 
parser.parse_args() 

的话,我得到这个错误

usage: main.py [-h]
main.py: error: unrecognized arguments: -f
C:\Users\Saeid\AppData\Roaming\jupyter\runtime\kernel-301e1312-128e-4c4d-9ae8-
035b05a69a59.json

发生异常,使用TB%看到完整的回溯。

SystemExit:2

C:\Program Files\Anaconda3\lib\site-
packages\IPython\core\interactiveshell.py:2889: UserWarning: To exit: use
'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

+0

为什么你甚至使用'argparse'?你想分析哪些命令行参数?另外你如何运行这个脚本?从shell?从正在运行的Ipython会话中?用Ipython的'run'?或者是其他东西。你没有提供足够的上下文。 – hpaulj

回答

1

的​​模块用于解析命令行参数。因此,在IPython或Jupyter笔记本中这样做没有多大意义。这个错误有可能来源于笔记本被-f选项调用的事实。

+0

感谢您的快速回复,但我的问题是我应该如何实现此脚本。显然,我是新的python,我不知道我应该如何使用argparse与ipython,如果你可以提供我一个程序,我将不胜感激。 (我使用ipython在anaconda和它在windows7上运行) –

0

由于时髦未来指出,您不应该使用IPython笔记本电脑​​。为了测试它是如何工作的,让我们假设一个名为test.py,内容如下文件:

import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument("echo") 
args = parser.parse_args() 
print(args.echo) 

现在在你的终端(CMD或PowerShell的),你去与test.py文件类型的目录:

python test.py 123 

输出应为:

123 

Source

+0

谢谢,我想通了,但无论如何谢谢:) –

0

要避免该错误消息,您可以做

import argparse 
parser = argparse.ArgumentParser() 
parser.parse_args([]) 
相关问题