Docopt-错误,退出未定义的-Python程序的CLI接口



我确信答案已经出来了,但我已经阅读了网站信息,观看了他们制作的视频,我试图找到一个真正基本的教程,但我做不到。我一天中大部分时间都在处理这个问题,这对我来说真的没有意义。

这是我的错误:

vco@geoHP:~$ python3 a_blah.py "don't scare the cats" magic
Traceback (most recent call last):
  File "a_blah.py", line 20, in <module>
    arguments = docopt.docopt(__doc__)
  File "/usr/lib/python3/dist-packages/docopt.py", line 579, in docopt
    raise DocoptExit()
docopt.DocoptExit: Usage: 
    a_blah.py <start>... <end>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "a_blah.py", line 33, in <module>
    except DocoptExit:
NameError: name 'DocoptExit' is not defined

第20行-我不明白为什么这一行会造成错误,它以前也起过作用,我在其他节目中也看到过这一行?

我不知道为什么docopt的第570行会产生错误——我见过其他人使用DocoptExit(),这不是docopt的一部分吗?我必须为此编写自己的退出函数吗?(我没见过其他人这么做)

这是代码

import docopt
if __name__ == '__main__':
    try:
        arguments = docopt.docopt(__doc__)
        print(arguments['<start>'])
        print("that was that")
        print(arguments['<end>'])       
    except docopt.DocoptExit:
        print("this hasn't worked")

我想做的是我写的一个脚本,它可以根据文件的扩展名将文件从一个地方移动到另一个地方。

因此,命令行中的参数将是文件类型、开始目录、目标目录,以及在它们被移动后从开始目录中删除它们的选项。

不过,在将docopt包含在其他脚本中之前,我正在尝试(但失败了)让它自己工作。

您想要的异常在docopt的命名空间中。您永远不会将它导入到全局命名空间中,因此不能简单地使用它的名称来引用它。您需要单独导入它,或者通过模块引用它。您也不应该在异常后使用括号。

import docopt
try:
    # stuff
except docopt.DocoptExit:
    # other stuff

import docopt
from docopt import DocoptExit
try:
    # stuff
except DocoptExit:
    # other stuff

相关内容

  • 没有找到相关文章

最新更新