Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python脚本中使用pip_Python_Svn_Pip - Fatal编程技术网

在python脚本中使用pip

在python脚本中使用pip,python,svn,pip,Python,Svn,Pip,我正在用python编写一个实用程序,它需要根据用户提供的标志和/或输入检查(如有必要,安装甚至升级)目标项目/virtualenv中的各种其他模块。我目前正试图直接/通过编程使用“pip”(因为它对我需要访问的各种回购类型提供了现有支持),但我很难找到以这种方式使用它的示例或文档 这似乎是要走的方向: import pip vcs = pip.vcs.VersionControl(url="http://path/to/repo/") …但它没有带来快乐 我需要一些基础知识方面的帮助,比如如

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

这似乎是要走的方向:

import pip
vcs = pip.vcs.VersionControl(url="http://path/to/repo/")
…但它没有带来快乐


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

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')

检查以了解支持哪些vcs

您所说的“没有乐趣”是什么意思?它是否给出错误消息?它不安装吗?它不安装,甚至不返回值。然后,我尝试在vcs对象上使用“获取”方法,但也没有效果——事实上,这确实是个错误。我只需要一些关于它的例子或文档,甚至是这种用法的“最佳实践”。有人吗?即使是简短的“试着读“X”!”,只要X是可访问的,并在这方面有任何光,将不胜感激。上面的链接是断开的(一个无休止的重定向循环),但它并不完全是我所寻找的反正。pip模块的文档在哪里?我找到了pip命令行工具的各种文档,但是没有找到pip模块本身的文档。我已经更新了链接。我想我从来没有读过pip模块的真正文档,我想我检查了源代码(对不起,时间太长了)。是的,我一直在做同样的事情,因为命令行之外的文档实在不多。谢谢你的回复。