VCS サポート

pip は、さまざまなバージョン管理システム (VCS) からのインストールをサポートしています。このサポートには、(使用されているバージョン管理システムの)動作する実行可能ファイルが必要です。URL プレフィックスを介して使用されます

  • Git -- git+

  • Mercurial -- hg+

  • Subversion -- svn+

  • Bazaar -- bzr+

サポートされている VCS

Git

サポートされているスキームは、git+filegit+httpsgit+sshgit+httpgit+git、および git です。サポートされている形式のいくつかを次に示します

MyProject @ git+ssh://git@git.example.com/MyProject
MyProject @ git+file:///home/user/projects/MyProject
MyProject @ git+https://git.example.com/MyProject

警告

gitgit+git、および git+http スキームの使用はお勧めしません。前者の 2 つは認証のない Git プロトコル を使用し、HTTP は TLS ベースの暗号化がないため安全ではありません。

ブランチ名、コミットハッシュ、タグ名などの「git ref」を指定することもできます

MyProject @ git+https://git.example.com/MyProject.git@master
MyProject @ git+https://git.example.com/MyProject.git@v1.0
MyProject @ git+https://git.example.com/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709
MyProject @ git+https://git.example.com/MyProject.git@refs/pull/123/head

コミットハッシュを渡す場合は、部分的なハッシュよりも完全なハッシュを指定することをお勧めします。完全なハッシュを使用すると、pip は(ネットワーク呼び出しの回数を減らすなど)より効率的に動作できるためです。

Mercurial

サポートされているスキームは、hg+filehg+httphg+httpshg+ssh、および hg+static-http です。サポートされている形式のいくつかを次に示します

MyProject @ hg+http://hg.myproject.org/MyProject
MyProject @ hg+https://hg.myproject.org/MyProject
MyProject @ hg+ssh://hg.myproject.org/MyProject
MyProject @ hg+file:///home/user/projects/MyProject

リビジョン番号、リビジョンハッシュ、タグ名、またはローカルブランチ名を指定することもできます

MyProject @ hg+http://hg.example.com/MyProject@da39a3ee5e6b
MyProject @ hg+http://hg.example.com/MyProject@2019
MyProject @ hg+http://hg.example.com/MyProject@v1.0
MyProject @ hg+http://hg.example.com/MyProject@special_feature

Subversion

サポートされているスキームは、svnsvn+svnsvn+httpsvn+https、および svn+ssh です。サポートされている形式のいくつかを次に示します

MyProject @ svn+https://svn.example.com/MyProject
MyProject @ svn+ssh://svn.example.com/MyProject
MyProject @ svn+ssh://user@svn.example.com/MyProject

次のように、SVN URL に特定のリビジョンを指定することもできます

-e svn+http://svn.example.com/svn/MyProject/trunk@2019#egg=MyProject
-e svn+http://svn.example.com/svn/MyProject/trunk@{20080101}#egg=MyProject

Subversion から特定のリビジョンを使用するには、編集可能な VCS インストール を使用する必要があることに注意してください。

Bazaar

サポートされているスキームは、bzr+httpbzr+httpsbzr+sshbzr+sftpbzr+ftp、および bzr+lp です。サポートされている形式は次のとおりです

MyProject @ bzr+http://bzr.example.com/MyProject/trunk
MyProject @ bzr+sftp://user@example.com/MyProject/trunk
MyProject @ bzr+ssh://user@example.com/MyProject/trunk
MyProject @ bzr+ftp://user@example.com/MyProject/trunk
MyProject @ bzr+lp:MyProject

タグまたはリビジョンは次のようにインストールできます

MyProject @ bzr+https://bzr.example.com/MyProject/trunk@2019
MyProject @ bzr+http://bzr.example.com/MyProject/trunk@v1.0

編集可能な VCS インストール

VCS プロジェクトは、編集可能モード--editable オプションを使用)でインストールすることも、そうでない場合もあります。

  • デフォルトのクローン場所(編集可能なインストールの場合)は次のとおりです

    • 仮想環境では <venv path>/src/SomeProject

    • グローバル Python インストールでは <cwd>/src/SomeProject

    --src オプションを使用して、この場所を変更できます。

  • 編集不可のインストールの場合、プロジェクトは一時ディレクトリにローカルにビルドされ、通常どおりインストールされます。

パッケージの適切なバージョンがすでにインストールされている場合、--upgrade フラグがないと、VCS ソースによって上書きされないことに注意してください。さらに、pip は、VCS 要件に対してどのようなアクションを実行するかを決定するために、ターゲットリビジョンにおけるパッケージバージョンを(コミット自体ではなく)確認します。

URL フラグメント

pip は、Python パッケージが VCS ディレクトリのルートにない場合、VCS URL の subdirectory フラグメントを調べて、Python パッケージへのパスを指定します。例:pkg_dir

pip は、「プロジェクト名」を指定する egg フラグメントも調べます。実際には、egg フラグメントは、pip が編集可能モードで VCS クローン場所を決定するのに役立つ場合にのみ必要です。その他のすべての状況では、egg フラグメントは不要であり、使用はお勧めしません。

egg フラグメントは、ベア プロジェクト名 である**必要があります**。それ以外のものは動作を保証されません。

リポジトリレイアウトが次のようになっている場合

pkg_dir
├── setup.py  # setup.py for package "pkg"
└── some_module.py
other_dir
└── some_file
some_other_file

$ python -m pip install "pkg @ vcs+protocol://repo_url/#subdirectory=pkg_dir"
$ python -m pip install "pkg @ vcs+protocol://repo_url/#subdirectory=pkg_dir"
C:> py -m pip install "pkg @ vcs+protocol://repo_url/#subdirectory=pkg_dir"

Windows

$ python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"
$ python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"
C:> py -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"