検索
連載

[解決!Python]pipでGitHubからパッケージをインストールするには解決!Python

pipはPyPIからだけではなく、GitHubで公開されているパッケージのリポジトリから直接インストールすることもできる。その方法を紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「解決!Python」のインデックス

連載目次

コマンドライン 説明
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で管理している自作パッケージをローカルリポジトリからインストールする方法もあるが、これについては別稿で紹介する。

「解決!Python」のインデックス

解決!Python

Copyright© Digital Advantage Corp. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る