[解決!Python]pipでGitHubからパッケージをインストールするには:解決!Python
pipはPyPIからだけではなく、GitHubで公開されているパッケージのリポジトリから直接インストールすることもできる。その方法を紹介する。
コマンドライン | 説明 |
---|---|
pip install pkg_name@git+https://github.com/acc_name/repo_name.git | リポジトリ名とパッケージ名が異なる場合は「パッケージ名@」を「git+https://…….git」の前に付加 |
pip install git+https://github.com/acc_name/pkg_name.git | リポジトリ名とパッケージ名が同じならこう書ける |
pip install git+https://github.com/acc_name/pkg_name.git@v1.0 | 「@v1.0」のように末尾にバージョンやタグを付加できる |
pipでGitHubからパッケージをインストールする構文 |
GitHubからパッケージをインストールする
pipでは、GitHubで公開されているパッケージを直接インストールすることも可能だ。これには「python -m pip install git+url」「py -m pip install git+url」「pip install git+url」などの形でpipを実行することになる(urlはリポジトリのURL)。本稿では最後の形式で構文を記述するので、ご自身の環境に応じて読み替えていただきたい。
ここではRequestsパッケージを例にGitHubからパッケージをインストールする方法を紹介する(RequestsパッケージのリポジトリURLは「https://github.com/psf/requests.git」)。
一番シンプルなのは以下の方法だ。
% pip install git+https://github.com/psf/requests.git
これによりRequestsパッケージのGitHubリポジトリからパッケージを直接インストールできる。以下に実行例を示す(コマンドラインを強調書体として表示)。
% pip list
Package Version
---------- -------
pip 22.3.1
setuptools 65.5.0
% pip install git+https://github.com/psf/requests
Collecting git+https://github.com/psf/requests.git
…… 中略 ……
Successfully built requests
Installing collected packages: charset-normalizer, urllib3, idna, certifi, requests
Successfully installed certifi-2022.12.7 charset-normalizer-3.0.1 idna-3.4 requests-2.28.2 urllib3-1.26.14
% pip list
Package Version
------------------ ---------
certifi 2022.12.7
charset-normalizer 3.0.1
idna 3.4
pip 22.3.1
requests 2.28.2
setuptools 65.5.0
urllib3 1.26.14
インストールする前後に「pip list」コマンドでインストールされているパッケージを一覧している。これらを見ると、必要な依存関係を含めてインストールが行われていることが分かる。
リポジトリ名とパッケージ名が異なっているという場合、「git+url」の前に「パッケージ名@」を付加する。上の例で分かるように、Requestsパッケージでは「requests@」を付加しなくてもインストールできるが、これを付加してインストールする例を以下に示す。
% pip uninstall requests
Found existing installation: requests 2.28.2
Uninstalling requests-2.28.2:
Would remove:
…… 中略 ……
Proceed (Y/n)? y
Successfully uninstalled requests-2.28.2
% pip install requests@git+https://github.com/psf/requests.git
Collecting requests@ git+https://github.com/psf/requests.git
…… 中略 ……
Installing collected packages: requests
Successfully installed requests-2.28.2
逆にパッケージ名と異なる識別子を付加してインストールしてみよう。
% pip uninstall requests
% pip install foo@git+https://github.com/psf/requests.git
Collecting foo@ git+https://github.com/psf/requests.git
…… 中略 ……
ERROR: Could not find a version that satisfies the requirement foo (unavailable) (from versions: none)
ERROR: No matching distribution found for foo (unavailable)
このようにパッケージの名前と異なる識別子を与えるとインストールに失敗する。
特定のバージョンのパッケージや特定のタグが付加されたバージョンをインストールするにはURLの末尾に「@sometag」のように指定する。
例えば、2023年1月13日現在、Requestsパッケージの最新バージョンは2.28.2だが、その1つ前のバージョンである2.28.1をインストールするには次のようにする。
% pip install git+https://github.com/psf/requests.git@v2.28.1
この他にもGitで管理している自作パッケージをローカルリポジトリからインストールする方法もあるが、これについては別稿で紹介する。
Copyright© Digital Advantage Corp. All Rights Reserved.