【发布时间】:2011-08-04 14:48:15
【问题描述】:
我的 svn 存储库中有另一个 python 项目的克隆(具有 setup.py 等)。我想安装告诉 pip 从这个目录安装。然而,它是一个内部 svn 存储库,可以通过 svn:// 方案访问,而不是 http://。
我可以像 svn co svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version ./foobar 那样检查目录,然后用 pip 安装它:pip install foobar/,但是我不能一口气完成所有操作。
这是我尝试过的和输出:
pip install svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version
...
File ".../virtualenv/lib/python2.5/site-packages/pip-0.7.2-py2.5.egg/pip/vcs/__init__.py", line 110, in get_url_rev
url = self.url.split('+', 1)[1]
IndexError: list index out of range
和
pip install svn+svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version
...
File "...virtualenv/lib/python2.5/site-packages/distribute-0.6.10-py2.5.egg/pkg_resources.py", line 2424, in scan_list
raise ValueError("Expected "+item_name+" in",line,"at",line[p:])
ValueError: ('Expected version spec in', 'svn+svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version', 'at', '+svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version')
无论是否在 URL 末尾添加#egg=packagename,这两个问题都会发生(带有相同的错误消息)。
作为可编辑的 URL:
pip install -e svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version#egg=package
Obtaining package from svn+svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version#egg=package
Checking out svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version#egg=package to ../virtualenv/src/package
svn: URL 'svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version#egg=package' is not properly URI-encoded
因此,如果 url 末尾有 #egg=package,SVN 会抱怨,如果我将其省略,则会出现此错误:
pip install -e svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version
--editable=svn://172.31.1.3/Development/Common/ThirdParty/Python/package/our-version is not the right format; it must have #egg=Package
如何使用 pip 从 SVN 链接安装软件包?
【问题讨论】:
-
您的意思是
svn+ssh,而不是svn+svn? -
您尝试过:pip install svn+svn://fuulpath/repo#egg=packagename 吗?请尝试一下。如果它不起作用,请在问题跟踪器中报告。
-
@Hugo,是的,我试过 svn+svn://...#egg=packagename,同样的“Expected version spec in”错误
-
@Marc, svn+ssh:// 不起作用,出现错误“svn: No repository found in 'svn+ssh://rmccann@172.31.1.3/Development/Common/第三方/Python/packagename/our-version'"