0

我正在 python 中编写一个实用程序,它需要根据用户提供的标志和/或输入来检查(并在必要时安装甚至升级)目标项目/virtualenv 中的各种其他模块。我目前正在尝试直接/以编程方式使用“pip”(因为它支持我需要访问的各种 repo 类型),但我很难找到以这种方式使用它的示例或文档。

这似乎是前进的方向:

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

......但它没有带来快乐。

我显然需要一些基础知识的帮助——比如我如何使用 pip 将 svn repo 的副本拉/导出到给定的本地目录中。最终,我还需要将它用于 git 和 mercurial checkout 以及标准 pypi 安装。任何链接、文档或指针将不胜感激。

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以了解支持哪些 vcs

于 2013-03-31T01:39:14.903 回答