概要
GitHub リポジトリのサブディレクトリに入っているパッケージを直接ローカルに pip install するときの pip install コマンドの書き方を記します。
問題点として
GitHub から直接 pip install できる便利機能があるものの、公式ドキュメントや pip のドキュメントをよく見ないと書き方がわかりづらい。
pip install の書き方
URLスキーム | pip コマンド |
---|---|
HTTPS | pip install "git+https://github.com/(アカウント名)/(リポジトリ名).git#egg=(パッケージ名)&subdirectory=(ディレクトリ名)" |
SSH | pip install "git+ssh://git@github.com/(アカウント名)/(リポジトリ名).git#egg=(パッケージ名)&subdirectory=(ディレクトリ名)" |
- egg=(パッケージ名)は
setup.py
の中にある関数 setup(name=○○○, ...) の引数 name に渡される名称です。
インストール例
例として下記のようなディレクトリ構造をもつGitHubリポジトリのうち、 sub_package_1 にあるライブラリのみGitHubから直接インストールする方法を記します。
ディレクトリ構造
.
|____sub_package_1 : リポジトリのルートの下に独立したパッケージがある.
| |____setup.py : 独立したパッケージにはそれぞれ setup.py が存在する.
| |____package1
| | |______init__.py
| | |____util.py
|____sub_package_2 : 上記とは別の独立したパケージ
| |____setup.py : 独立したパッケージにはそれぞれ setup.py が存在する.
| |____package2
| | |______init__.py
| | |____util.py
setup.py について
この場合の setup.py
の内容は通常のパッケージの書き方と同じです。特にサブディレクトリのために必要な記述はありません。
サンプルプログラムのサブディレクトリを GitHub から直接 pip install する
GitHub サプリディレクトリを直接 pip install できるサンプルプログラムを用意しました。
pip install コマンド は次のようになります。
$ pip install "git+https://github.com/smn-ailab/tshimura_qiita.git#egg=weather&subdirectory=weather_checker"
- パッケージ名の後に
&subdirectory=(ディレクトリ名)
を指定します。 - ダブルクォーテーションマークで囲む点に注意してください。
- なおアンインストールは
pip uninstall weather
です。