1

Python で記述されたコマンドライン プログラム (具体的には argparse を使用するdocoptmy-program command1 argsを使用) があり、それをの代わりにとして実行したい場合python my-program.py command1 args、どうすればよいですか? 今のところ、これは Debian ベースの OS (Ubuntu など) 用です。

私は通常、モジュールをパッケージにするので、すでに持っていますsetup.pyが、無料のコマンドは許可されません。

ありがとう!


編集

@pyrospade は、以下の非常に優れたリンクを提供しました。私は私の結果を共有するつもりです。

私たちが持っているとしましょう

top-level-directory
    setup.py
    package/
         __init__.py
         cli.py

シェルでscripts=['package/cli.py']アクセスしたい場合に利用できます。cli.py

として実行したい場合my-cliは、使用できます

entry_points={
    'console_scripts':
        ['my-cli=package.cli:main']
}

を使っているのでdocopt、これを持っています

def dispatcher(...)
def fun1(....)


def main():    
    arguments = docopt(COMMAND, version="xxxx")
    dispatcher(arguments)

if __name__ == '__main__':
    main()

__init__.pyと言って下に置くこともでき['my-cli=package:main']ますが、繰り返しますが、という関数が必要ですmain()。ただし、任意の名前を付けることができます。ただ言って。

4

2 に答える 2

2

プログラムの先頭にシバン行があることを確認してください。

#!/usr/bin/python

ファイルを実行可能にします。

chmod a+x my-program.py

目的のコマンド名でリンクを作成します。

ln -s my-program.py /usr/local/bin/my-program
于 2013-02-19T05:36:30.460 に答える
0

シバン (#!) を追加して実行可能にします。

#! /usr/bin/python

詳細については、こちらをご覧ください。

于 2013-02-19T05:37:36.257 に答える