对main的Python命令行调用不进入main函数

对main的Python命令行调用不进入main函数,python,arguments,python-3.6,main,Python,Arguments,Python 3.6,Main,我有一个具有以下主要功能的python文件: if __name__ == '__main__': args = docopt(__doc__) print('source: %s' % args['--src']) print('target: %s' % args['--tgt']) python test.py --src file1 --tgt file2 现在,当我调用此函数时: if __name__ == '__main__': args =

我有一个具有以下主要功能的python文件:

if __name__ == '__main__':
    args = docopt(__doc__)

    print('source: %s' % args['--src'])
    print('target: %s' % args['--tgt'])
python test.py --src file1 --tgt file2
现在,当我调用此函数时:

if __name__ == '__main__':
    args = docopt(__doc__)

    print('source: %s' % args['--src'])
    print('target: %s' % args['--tgt'])
python test.py --src file1 --tgt file2
我得到:

Usage:
    test.py --src=<file> --tgt=<file>
Options:
    -h --help            Show this screen.
    --src=<file>         src
    --tgt=<file>         tgt

但是我得到了同样的结果。

查看您的文档字符串。我认为问题是由于
用法
选项
部分之间缺少换行符

我尝试了这个docstring,效果很好:

"""
Usage:
    test.py --src=<file> --tgt=<file>

Options:
    -h --help       Show this screen.
    --src<file>     src
    --tgt=<file>    tgt
"""
from docopt import docopt

if __name__ == '__main__':
    args = docopt(__doc__)
    print('source: %s' % args['--src'])
    print('target: %s' % args['--tgt'])
“”“
用法:
test.py--src=--tgt=
选项:
-h--帮助显示此屏幕。
--src-src
--tgt=tgt
"""
从docopt导入docopt
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
args=docopt(文档)
打印('源:%s'%args['--src'])
打印('目标:%s'%args['--tgt'])

python test.py--src=file1--tgt=file2
是的,我试过了..同样的结果..您也可能从
pdb
库中受益。几个位置恰当的pdb.set_trace()调用将使确定代码的行为更加容易。如果在args=call之前放置一个,您会发现它确实输入了If语句。@Erich谢谢,我将set_trace放在args=docopt(doc)的正下方。。它进入main,但之后的逻辑不会被调用。它正在被输入,因为否则
docopt
将无法解析参数并生成用法消息。那么,你的文档串是什么?