提问人:Travis 提问时间:9/12/2015 最后编辑:Travis 更新时间:6/12/2016 访问量:4791
pip 在升级后不起作用
pip doesn't work after upgrade
问:
今天我从 pip 7.1.0 升级到 7.1.2,现在它不起作用。
$ pip search docker-compose
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 223, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/search.py", line 43, in run
pypi_hits = self.search(query, options)
File "/Library/Python/2.7/site-packages/pip/commands/search.py", line 60, in search
hits = pypi.search({'name': query, 'summary': query}, 'or')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1240, in __call__
return self.__send(self.__name, args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1599, in __request
verbose=self.__verbose
File "/Library/Python/2.7/site-packages/pip/download.py", line 788, in request
return self.parse_response(response.raw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1490, in parse_response
return u.close()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 799, in close
raise Fault(**self._stack[0])
Fault: <Fault 1: "<type 'exceptions.KeyError'>:'hits'">
所以我尝试重新安装:
sudo -H pip install --force-reinstall -U pip
重新安装运行没有错误,但是当我尝试搜索时,我遇到了同样的错误。
所以,我尝试重新安装旧版本:
sudo -H pip install --force-reinstall -U pip==7.1.0
同样,重新安装有效,但重新安装后搜索仍然中断。除了错误之外,我还收到了版本升级消息:
You are using pip version 7.1.0, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
禁用缓存也会给出相同的错误:
pip search docker-compose --no-cache-dir --disable-pip-version-check
问题似乎只出在搜索功能上,因为 pip 仍然运行良好,可以自行重新安装等等。
我相信我今天只安装了另一个包,那就是 docker-compose。当我搜索 docker-compose 以外的包时会出现问题,如我的示例所示。
有什么想法吗?
答:
我无法在 Linux 上使用 pip 7.1.2 和 Python 2.7.8 或 3.5.1 重现这一点。
xmlrpclib 文档对“故障”是这样说的:
方法调用还可能引发一个特殊的 Fault 实例,用于发出信号 XML-RPC 服务器错误
这意味着 pip 在服务器 (pypi) 端报告了问题。
Python 基础结构状态站点报告了 2015-09-11 和 2015-09-12 的点搜索问题。
我怀疑这不是 pip 中的错误,而是在相关日期 pypi.python.org 的问题。这个问题于2015-09-11被问到。
2015 年 9 月 11 日,pypi bitbucket 存储库上记录了类似的错误,强化了我的理论。
有趣的是,pypi 的 github 存储库中记录了另一个类似的错误。在本例中,搜索词为正则表达式:
pip search "^docker-compose$"
我可以在 Linux 上的 Python 2.7.8 和 Python3.5.1、pip-7.1.2 和 pip-8.1.1 上重现此错误;但是我在 pip 文档中看不到任何表明 pip 搜索支持正则表达式的内容,并且这个答案表明正则表达式不受支持,所以我认为这是一个与 OP 问题无关的单独问题。
评论
pip search
使用 wiki.python.org/moin/PyPIXmlRpc ,它只匹配固定字符串。(支持可再生能源的方式,例如 将是搜索,然后执行 RE。search
'^aa.*bb'
"aa"
pip
有时,如果找不到匹配项(命中),则执行此操作:
$ pip search ''
:
Fault: <Fault 1: "<type 'exceptions.KeyError'>:'hits'">
$ pip search 'something'
:
还行
也可能是服务器端错误,无法提供所需信息。因此,修复必须由开发人员或服务器开发人员或两者兼而有之。pip
去年当我没有收到这个问题的答案时,我在 GitHub 上发布了一个问题,并确定我的问题是由 PyPi/pip 服务器关闭引起的(我猜只是搜索部分)。
我不能确定,但去年这个问题活跃时似乎有更多的评论/答案。我真的以为有人在这里发布了这个答案(至少在评论或其他东西中),但现在显然不在这里。
我认为@tedder42遇到了与我不同的问题,因为 PyPi 最近没有任何停机时间。即使有人发布了他问题的真实答案,我也没有办法验证它。所以,我认为最好的做法是忽略他的赏金,如果他仍然有问题,它应该变成一个新的问题。
评论
pip search docker-compose
docker
compose