我在python中编写一个实用程序,需要根据用户提供的标志和/或输入检查(如果需要,安装甚至升级)目标项目/ virtualenv中的各种其他模块。我目前正在尝试直接/编程地使用'pip'(因为它现在支持我需要访问的各种repo类型),但是我很难找到以这种方式使用它的示例或文档。
这似乎是方向:
import pip
vcs = pip.vcs.VersionControl(url="http://path/to/repo/")
......但它并没有带来欢乐。
我需要一些基本的帮助 - 比如我如何使用pip将svn repo的副本拉/导出到给定的本地目录中。最终,我还需要将它用于git和mercurial checkout以及标准的pypi安装。任何链接,文档或指针都将非常感激。
答案 0 :(得分:1)
Pip使用特定格式的vcs网址。格式为
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以了解支持哪些vcs