私はpythonパッケージをコマンドラインから実行可能にしたいと思っています。コマンドラインからパッケージを実行可能にする方法は?
./myfile.py
を使用して1つのファイルを実行可能にするには、chmod +x myfile.py
ここでmyfile.py
は、#!/usr/bin/env
で始まります。私はまた__main__.py
を含むパッケージを実行するためにpython -m mypackage
を行うことができることを知っています。私は、パッケージの__main__.py
にシェバング行を追加chmod +x mypackage
を実行して、./mypackage
をしようとした場合
はしかし、私はエラー-bash: ./mypackage: Is a directory
を取得します。
このようなパッケージを実行することはできますか?
ディレクトリではなく*ファイル*を実行する必要があります。 ./mypackage/__main__.pyを実行するとどうなりますか? Pythonはメインプログラムを見つける方法を知っているかもしれませんが、Linuxシェルは見つからないでしょう。 – Prune
*このようなパッケージは実行できますか?* <=いいえ。しかし、なぜシェルスクリプトをドロップしないのですか? – dhke
[setuptools 'console_scripts'エントリポイント](http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point)を調べるとよいでしょう。 )。 *(あなたのパッケージは適切な 'setuptools'ディストリビューションで、' setup.py'などを使っていると仮定します)* –