在python脚本中使用pip

时间:2012-06-26 23:09:28

标签: python svn pip

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

这似乎是方向:

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

......但它并没有带来欢乐。

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

1 个答案:

答案 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