当指定特定 SVN 修订版时,PIP 始终下载并安装包(显着减慢同步过程)。
有没有解决的办法?正常情况下pip会检测到环境中已经安装了该包并提示使用--upgrade
.
我的 pip_requirements 文件具有以下行:
svn+http://code.djangoproject.com/svn/django/trunk/@16406#egg=Django1.4A
感谢您的帮助!
Answer
- 必须将 Egg 名称指定为确切的 Python 包名称。
- 不得使用
-e
flag.
- 不适用于 PIP 版本
0.7
,适用于1.0.2
.
实际上,上周末我一直在研究 pip,我相信我已经解释了你的 pip 问题。问题只是 pip 本身的限制。由于安装过程的工作方式#egg=[egg-name]
部分必须正确命名为 setup.py 名称 kwarg 中标识的实际项目名称(这是 PyPI 上已知的名称)。
简答
您的线路:
svn+http://code.djangoproject.com/svn/django/trunk/@16406#egg=Django1.4A
应该:
svn+http://code.djangoproject.com/svn/django/trunk/@16406#egg=django
长答案
根据我的理解,安装过程实际上执行了以下操作(如果我错了,Ian Bicking 会让我失望:-P)
- 当它得到您的要求时,它会根据 vcs+[url] 结构确定该链接指向它所知道的 VCS。
- 它将代码检出到您环境中的临时目录中。
- 它运行 setup.py (我相信 Egg_info 和 install)
- 签出代码的临时目录已从文件系统中删除
因此,一旦步骤 3 完成并且您签出的源已安装,Django 就会将 pip 视为django
(不区分大小写)。但是,如果您保留当前的需求行,pip 将搜索Django1.4A
。找不到与该名称匹配的包,它将再次检查源代码并尝试安装它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)