PIP hg +和git +总是下载包而不是检测满意的要求

时间:2012-01-11 19:19:12

标签: python git mercurial pip

我在这里的另一个问题just got answered关于为什么pip svn+总是重新下载整个软件包。

现在我在pip_requirements文件中有一些包,总是下载而不是检测到包满足要求。

它们是以下类型:

  • git+git://github.com/yuchant/django-jinja2.git
  • hg+https://bitbucket.org/yuchant/django-storages

使用svn+无论我是指定中继还是特定修订,我的包都会被检测为满意。 git和mercurial的模式是不同的吗?

1 个答案:

答案 0 :(得分:3)

简答

将任何VCS与pip需求文件一起使用时,应始终使用#egg=[egg-name]

进行指定

因此您的需求文件应包含:

git+git://github.com/yuchant/django-jinja2.git#egg=django-jinja2
hg+https://bitbucket.org/yuchant/django-storages#egg=django-storages

长答案

如果您指定点数要求,就像在没有#egg=[egg-name]的问题中那样。我打算将该字符串称为egg标识符。问题与您的上一个问题非常相似。 Pip使用egg标识符来搜索当前安装的python模块。

如果未指定egg标识符,则会发生这种情况:

  1. Pip在已安装的模块中搜索git+git://github.com/yuchant/django-jinja2.git
  2. Pip找不到它所以尝试再次安装
  3. 如果您使用鸡蛋标识符,则不会出现此问题。