はじめに

Pythonのパッケージ管理といえばpipですが、自分で開発しているライブラリをpipでインストールしたい時の方法です。特に開発途中で編集もするといった状況に対応しています。

コマンド

普通のライブラリの場合

普通、pipでライブラリをインストールするときはpip install <requirement specifier>とします。

例えばfonttoolsというライブラリを入れたいときは

$ pip install fonttools

とします。

開発ライブラリのインストール

手元にあるすでに完成した開発ライブラリであれば以下の方法でインストールすることができます。

$ cd /path/to/your/library
$ pip install .

ちなみにGitで管理しているものは以下の方法でインストールできます。

$ pip install git+https://example.com/path/to/your/repo.git

しかし、この方法では開発中で逐次編集を行いたい場合に向いていません。なので編集可能な状態でインストールします。

編集可能な状態で開発ライブラリのインストール

編集可能な状態でインストールするには-e, --editableオプションを使います。このオプションのヘルプは以下の通りです。

-e, --editable <path/url> Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.

ただ「setuptoolsで言う『開発モード』の編集可能モードでインストールできるよ」と書いてあるだけですね。

書いてある通り、オプションを付けて実行すれば編集可能モードでインストールできます。

やってみましょう。

$ cd /path/to/your/library
$ pip install -e .

すんなりインストールできるので、一見するとどこらへんが編集可能モードなのかがわかりません。

中で何が起こっているのか見てみましょう。

編集可能モードの詳細

通常pipでライブラリをインストールすると、ライブラリの実体はsite-packages内にインストールされます。

しかし、編集可能モードでインストールしたライブラリは実体がこのsite-packagesにありません。site-packagesに追加されるのは

  • easy-install.pth
  • hogehoge.egg-link

の2つです。それぞれの中身を見ると、インストールしたライブラリへのパスが書かれています。つまり、開発中のライブラリをそのままインストールしたものとして読み込んでくれるようにしてくれているのです。なので、開発中と同様にライブラリを更新すれば、最新版をPythonのコード内で普通にimportすることが出来ます。

このように手元にあるまま編集/更新が行えるので、「編集可能モード」と言います。

おわりに

この方法だと開発中のライブラリが手軽に更新できるので、便利で良いですね。

自作のライブラリを用意することはほとんど無いのですが、使う機会があったので、まとめてみました。これで楽に開発が行えそうです。