[解決!Python]pipでローカル環境にあるパッケージをインストールするには:解決!Python
自作のパッケージやGitHubなどのリモートリポジトリからクローンしたパッケージをpipコマンドでインストールする方法を紹介する。
コマンド | 説明 |
---|---|
pip install パッケージのディレクトリへのパス | ローカル環境にあるパッケージをインストール |
pip install -e パッケージのディレクトリへのパス | ローカル環境にあるパッケージを編集可能モード(開発モード)でインストール |
ローカル環境にあるパッケージのインストール |
ローカル環境にあるパッケージをインストール
自分で何らかのユーティリティーパッケージを開発している場合や、GitHubで公開されているパッケージの開発に参加していてそのソースをローカル環境にクローンしている場合などには、それらローカルなパッケージをpipコマンドで別のプロジェクトにインストールできる。
ここでは以下のような自作パッケージを開発中であるとして話を進める。
- パッケージは「mypkgproj」ディレクトリに作成する
- パッケージ名は「mypackage」とする
- mypackageパッケージはmodule1.pyファイルとmodule2.pyファイル、__init__.pyファイル、pyproject.tomlファイルで構成される
- pyproject.tomlファイルにはパッケージ構成が記述される(本稿ではpyproject.tomlファイルにパッケージの構成を記述するものとして、setup.cfgファイルやsetup.pyファイルは含めていない)
パッケージ構成を記述した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
実行結果を以下に示す。
Copyright© Digital Advantage Corp. All Rights Reserved.