Python script を pip でインストール可能にする


Python script を pip でインストール可能にする

概要

自作した Python モジュールをコマンドラインから直接実行できるコマンドとしてインストールする手順をここに共有します。

実現するための手段として

setup.py にそのための記述を加えることで、モジュールのインストール後にコマンドとして使用できるようになります。

サンプル

サンプルプログラム を用意しました。
実際に動作するスクリプトとしてご参考ください。

事前の準備や条件など

  • この記事では Python 3.6 を使用しています。
  • コマンドラインから実行できる Python モジュール自体は既に出来上がっているものとします。

Python モジュールをコマンドとしてインストール

setup.pyについて

setup.py の 関数 setup の中に entry_points を加えることで、そのモジュールをコマンドとしてインストールできます。

entry_points={
    'console_scripts': ['コマンド名=モジュール名:実行する関数名']}

(サンプルプログラム抜粋)

setup(
    (省略)
    # lt コマンドはここで設定.
    entry_points={
        'console_scripts': ['lt=command.local_time:exec']})

この例では command モジュール内の local_time.py にある関数 exec とコマンド lt を紐付けています。

インストール

通常のモジュールと同様、 pip install によりインストールします。
サンプルプログラムをインストールする場合は、サンプルプログラムがあるディレクトリ上で

pip install .

を実行してください。

実行

console_scripts で指定したコマンドがコマンドラインから直接実行できるようになります。

サンプルの実行例

$ lt
Tokyo           2018-06-26 13:23:17 +09:00
London          2018-06-26 05:23:17 +01:00
New_York        2018-06-26 00:23:17 -04:00

アンインストール

アンインストールも通常のモジュールと同様に行うことができます。

$ pip uninstall モジュール名

結果として

自作 Python モジュールをコマンドとしてコマンドラインから直接実行できるようになりました。

 参考

python-packaging
setup スクリプトを書く