关于ipython:如何解决无法识别的参数错误?

How to solve unrecognized arguments error?

问题是我无法完成运行最简单命令的第一步。 当我写这段代码

1
2
3
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

然后我得到这个错误

usage: main.py [-h]
main.py: error: unrecognized arguments: -f
C:\Users\Saeid\AppData
oaming\jupyter
untime\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)


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


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

1
2
3
import argparse
parser = argparse.ArgumentParser()
parser.parse_args([])


正如时髦未来所指出的那样,你不应该使用带有argparse的IPython笔记本。 为了测试它是如何工作的,让我们假设一个名为test.py的文件,其中包含以下内容:

1
2
3
4
5
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)

现在在您的终端(cmd或PowerShell)中,转到包含test.py文件的目录并键入:

1
python test.py 123

输出应该是:

1
123

资源