<p>pip install -r 错误解析的 pip freeze 生成格式</p>

创建于 2014-09-15  ·  3评论  ·  资料来源: pypa/pip

我的 pip freeze 输出中有如下几行:

-e [email protected]:widgets.git@3bdaf7d07c44a87c38beb1e8abd163a7edf99adc#egg=widgets
-e [email protected]:[email protected]#egg=gadgets

当需要使用pip install -r requirements.txt ,似乎 pip 错误地将example.com:[email protected]识别example.com:gadgets.git然后它应该查看 3bda...99adc 提交。

如果我尝试使用 pip freeze 输出进行安装,例如

pip install -e [email protected]:[email protected]#egg=gadgets

我犯了同样的错误。

这都是使用 pip 1.5.4

freeze vcs awaiting PR auto-locked bug

所有3条评论

请注意,通过以下更改,它可以正常工作:

pip install -e [email protected]:/path/to/project/[email protected]#egg=project

或者

pip install -e [email protected]:project.git#egg=project

虽然在后者中,它显然只会拉出当前的提交,而不是 3bdaf 中指定的那个……

此外,由于我不明白的原因,它_确实_适用于对 github 的请求。

那是,

pip install -e [email protected]:JordanReiter/[email protected]#egg=github_project

作品。

这类似于#6293。 解析器(基于 stdlib urlsplit在识别 URL 的路径部分时遇到问题,当它根本不包含/时,将+之后的整个内容识别为netloc . 没有 rev 的变体完全是偶然的,因为netlocpath后来被连接回来并传递给 Git(它会自动做正确的事情)。

#6293 中的讨论似乎倾向于完全放弃对 SCP 风格的 URL 支持,所以这里更好的解决方案是在pip freeze吐出git+ssh:// URL。

结束,因为我们建议删除 #7554 中的git+git@表单。

此页面是否有帮助?
0 / 5 - 0 等级