2

docoptはしばらくの間、引数の解析を通過することができない新しいスクリプトを使用しています。

# coding=utf-8
"""
API server for the infoscreen frontends

Usage:
    python3 webserver.py [options]

Options:
    --bind ADDRESS  address to bind to  [default: 0.0.0.0]
    --galarmclock URL  URL for the galarmclock API [default: http://10.100.10.202:8082]
    --loglevel LOG  logging level   [default: logging.DEBUG]
    --console   log to console [default: False]
    --syslog    log to syslog [default: False]

"""

import docopt

# process arguments
args = docopt.docopt(__doc__)
print(args)

すべてのパラメーター (引数) はオプションであり、既定値があるのに、スクリプトが停止するのはなぜですか?

C:\Python3\python.exe C:/tst.py
Usage:
    python3 webserver.py [options]

Process finished with exit code 1
4

1 に答える 1

1

問題は使用部分にあります。

Usage:
    python3 webserver.py [options]

Docopt は、使用部分の最初の文字列が Python ではなく、プログラムであることを想定しています。したがって、docopt はこれをpython3あなたのプログラムであると解釈し、常に というコマンドを受け取りますwebserver.py。パーツを削除すると、次のように正常にpython3動作するはずです。

Usage:
    webserver.py [options]

docoptのドキュメントには次のようなものがあります。

キーワードの使用方法: (大文字と小文字を区別しない) と目に見える空の行の間にあるテキストは、使用パターンのリストとして解釈されます。使用法: の後の最初の単語は、プログラムの名前として解釈されます。

于 2016-12-22T17:49:04.693 に答える