【问题标题】:Installing a pip package from a local SVN checkout从本地 SVN 结帐安装 pip 包
【发布时间】: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'"

标签: python svn package pip


【解决方案1】:

现在是一个开放的错误。 Paul Nasrat 正在查看并打开并发布。

关注https://github.com/pypa/pip/issues/252

【讨论】:

  • 仅作记录,此错误已在最新版本的 pip 中修复。我喜欢开源!
猜你喜欢
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 2016-07-21
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多