0

ユーザーが指定したフラグや入力に基づいて、ターゲットプロジェクト/ virtualenvで他のさまざまなモジュールをチェックする(必要に応じて、インストールおよびアップグレードする)必要があるPythonでユーティリティを作成しています。私は現在、「pip」を直接/プログラム的に利用しようとしています (アクセスする必要があるさまざまなレポの種類に対する既存のサポートがあるため) が、この方法での使用に関する例やドキュメントを見つけるのが困難です。

これは進むべき方向のように見えました:

import pip
vcs = pip.vcs.VersionControl(url="http://path/to/repo/")

...しかし、それは喜びを与えません。

どうすれば pip を使用して svn リポジトリのコピーを特定のローカル ディレクトリにプル/エクスポートすることができるかなど、いくつかの基本的なことについて明らかに助けが必要です。最終的には、標準の pypi インストールだけでなく、git と mercurial のチェックアウトにも使用する必要があります。リンク、ドキュメント、またはポインタは大歓迎です。

4

1 に答える 1

1

Pip は、VCS URL に特定の形式を使用します。フォーマットは

vcsname+url@rev

@rev はオプションです。特定のコミット/タグを参照するために使用できます

pip を使用して汎用 vcs からローカル ディレクトリにリポジトリを取得するには、次のようにします。

from pip.vcs import VcsSupport

req_url = 'git+git://url/repo'
dest_path = '/this/is/the/destination'

vcs = VcsSupport()
vc_type, url = req_url.split('+',1)
backend = vcs.get_backend(vc_type)
if backend:
    vcs_backend = backend(req_url)
    vcs_backend.obtain(dest_path)
else:
    print('Not a repository')

https://pip.pypa.io/en/stable/reference/pip_install/#id8をチェックして、どの VC がサポートされているかを確認してください

于 2013-03-31T01:39:14.903 に答える