VCS サポート¶
pip は、さまざまなバージョン管理システム (VCS) からのインストールをサポートしています。このサポートには、(使用されているバージョン管理システムの)動作する実行可能ファイルが必要です。URL プレフィックスを介して使用されます
Git --
git+
Mercurial --
hg+
Subversion --
svn+
Bazaar --
bzr+
サポートされている VCS¶
Git¶
サポートされているスキームは、git+file
、git+https
、git+ssh
、git+http
、git+git
、および git
です。サポートされている形式のいくつかを次に示します
MyProject @ git+ssh://git@git.example.com/MyProject
MyProject @ git+file:///home/user/projects/MyProject
MyProject @ git+https://git.example.com/MyProject
警告
git
、git+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+file
、hg+http
、hg+https
、hg+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¶
サポートされているスキームは、svn
、svn+svn
、svn+http
、svn+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+http
、bzr+https
、bzr+ssh
、bzr+sftp
、bzr+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"