自作のパッケージやGitHubなどのリモートリポジトリからクローンしたパッケージをpipコマンドでインストールする方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
コマンド | 説明 |
---|---|
pip install パッケージのディレクトリへのパス | ローカル環境にあるパッケージをインストール |
pip install -e パッケージのディレクトリへのパス | ローカル環境にあるパッケージを編集可能モード(開発モード)でインストール |
ローカル環境にあるパッケージのインストール |
自分で何らかのユーティリティーパッケージを開発している場合や、GitHubで公開されているパッケージの開発に参加していてそのソースをローカル環境にクローンしている場合などには、それらローカルなパッケージをpipコマンドで別のプロジェクトにインストールできる。
ここでは以下のような自作パッケージを開発中であるとして話を進める。
パッケージ構成を記述したpyproject.tomlファイルの内容は次のようになっている。
[build-system]
requires = ['setuptools']
build-backend = 'setuptools.build_meta'
[project]
name = 'mypackage'
version = '0.0.1'
これはこのパッケージのビルドで使用するビルドシステム、パッケージ名、バージョンなどを記述したものだ。
module1.pyファイルには以下のようにhello関数だけが定義されている。
def hello():
print('hello')
module2.pyファイルにはgoodbye関数だけが定義されている。
def goodbye():
print('goodbye')
__init__.pyファイルには2つの関数をインポートして、その名前を変数__all__に設定している。
from . module1 import hello
from . module2 import goodbye
__all__ = ['hello', 'goodbye']
全体としてのファイル構成は次のようになっている。
このパッケージを別のプロジェクト(ここでは「myapp」とする)にインストールするには「pip install パッケージを含むディレクトリへのパス」コマンドを実行する。パッケージを含むディレクトリへのパスとはpyproject.tomlファイル(プロジェクトによってはsetup.cfgファイルやsetup.pyファイル、ライセンスやREADMEを記述したファイルなど)を含むディレクトリのパスとなる。これをここでは「C:\pytips\pytips_0119\mypkgproj」とする(Windows以外の環境の方は適宜読み替えてほしい)。
これをmyappディレクトリに構築した仮想環境(venvモジュールを使用)にインストールするには、以下のコマンドラインを実行する(実際にはbuildパッケージをインストールして「python -m build」「py -m build」などのコマンドを実行して配布物をビルドするといった手順を行うこともあるだろうj)。
(venv) ……> pip install C:\pytips\pytips_0119\mypkgproj
実行結果を以下に示す。
このときには、仮想環境のLib\site-packagesディレクトリ以下にパッケージの内容がコピーされる。以下の画像で「mypackage」の下にmodule1.pyファイルなどがあることを確認してほしい。
パッケージが開発中でなければ、これで問題ない。バージョンが上がったら、「pip install パッケージを含むディレクトリへのパス --upgrade」コマンドなどを実行して更新すればよい。
しかし、活発が頻繁で更新も頻繁であれば、そのたびにpipコマンドでインストールをやり直すのは面倒だ。こうしたときには、パッケージを編集可能モード(開発モード、editableモード)でインストールするとよい。
編集可能モードでローカルのパッケージをインストールするには、「-e」オプションを付加して「pip install -e パッケージを含むディレクトリへのパス」コマンドを実行すればよい。
以下は本稿で例としているパッケージを編集可能モードでインストールしたものだ。
インストール後に「pip list」コマンドを実行すると、編集可能モードでインストールしたパッケージについてはソースコードがどこにあるかも表示される。また、「-e」オプションなしでインストールした場合と異なり、Lib\site-packagesディレクトリにパッケージの内容がコピーされることもない。
編集可能モードでインストールしたパッケージを使用すると、元のプロジェクトが参照されるので、パッケージの機能追加や修正があったときに、それを使用している側でその結果をすぐに適用できる。
GitHubからクローンしたリポジトリについても同様にしてインストールできるだろう。また、「pip install -e git+https://…….git」のように編集可能モードでGitHubのリポジトリからパッケージをインストールすることも可能だ。この場合には、GitHubからリポジトリの内容がローカルにクローンされ、それを参照するようになる。
Copyright© Digital Advantage Corp. All Rights Reserved.