pip 在升级后不起作用

pip doesn't work after upgrade

提问人:Travis 提问时间:9/12/2015 最后编辑:Travis 更新时间:6/12/2016 访问量:4791

问:

今天我从 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 以外的包时会出现问题,如我的示例所示。

有什么想法吗?

python pip pypi

评论

0赞 Travis 6/6/2016
好的,我添加了标签。
0赞 denis 8/10/2016
在 2016 年 8 月,查找包名称中带有 OR 的包。(有谁知道这是否在任何地方都有记录?pip search docker-composedockercompose

答:

14赞 snakecharmerb 4/11/2016 #1

我无法在 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 问题无关的单独问题。

评论

1赞 denis 6/1/2016
pip search使用 wiki.python.org/moin/PyPIXmlRpc ,它只匹配固定字符串。(支持可再生能源的方式,例如 将是搜索,然后执行 RE。search'^aa.*bb'"aa"
1赞 totoro 4/17/2016 #2

pip有时,如果找不到匹配项(命中),则执行此操作:

$ pip search '':

Fault: <Fault 1: "<type 'exceptions.KeyError'>:'hits'">

$ pip search 'something':

还行

也可能是服务器端错误,无法提供所需信息。因此,修复必须由开发人员或服务器开发人员或两者兼而有之。pip

0赞 Travis 4/19/2016 #3

去年当我没有收到这个问题的答案时,我在 GitHub 上发布了一个问题,并确定我的问题是由 PyPi/pip 服务器关闭引起的(我猜只是搜索部分)。

我不能确定,但去年这个问题活跃时似乎有更多的评论/答案。我真的以为有人在这里发布了这个答案(至少在评论或其他东西中),但现在显然不在这里。

我认为@tedder42遇到了与我不同的问题,因为 PyPi 最近没有任何停机时间。即使有人发布了他问题的真实答案,我也没有办法验证它。所以,我认为最好的做法是忽略他的赏金,如果他仍然有问题,它应该变成一个新的问题。