Sunday, April 17, 2016

pip doesn't work after upgrade

Leave a Comment

Today I upgraded from pip 7.1.0 to 7.1.2, and now it doesn't work.

$ 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'"> 

So I tried reinstalling:

sudo -H pip install --force-reinstall -U pip 

The reinstall ran without error, but when I tried to search, I got the same error.

So, I tried reinstalling the old version:

sudo -H pip install --force-reinstall -U pip==7.1.0 

Again, the reinstall worked, but searching was still broken after the reinstall. In addition to the error, I did get the version upgrade message:

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. 

Disabling the cache also gives the same error:

pip search docker-compose --no-cache-dir --disable-pip-version-check 

The problem seems to only be with the search function, as pip still functions well enough to reinstall itself and such.

I believe I have only installed one other package today, which was docker-compose. The problem occurs when I search for packages other than docker-compose, as in my examples.

Any ideas?

2 Answers

Answers 1

I wasn't able to reproduce this with pip 7.1.2 and either Python 2.7.8 or 3.5.1 on Linux.

The xmlrpclib docs have this to say on 'faults':

Method calls may also raise a special Fault instance, used to signal XML-RPC server errors

This implies that pip is reporting a problem on the server (pypi) side.

The Python Infrastructure Status site reports problems with pip search on 2015-09-11 and 2015-09-12.

I suspect that this is not a bug in pip, but a problem with pypi.python.org on the dates in question.This question was asked on 2015-09-11.

A similar error was logged on the pypi bitbucket repo on 2015-09-11, reinforcing my theory.

Interestingly, there is another similar bug logged at pypi's github repo. In this case the search term is a regex:

pip search "^docker-compose$"

I can reproduce this error on Python 2.7.8 and Python3.5.1, pip-7.1.2 and pip-8.1.1 on Linux; however I can't see anything in the pip documentation to suggest that pip search supports regex, and this answer states regex is unsupported, so I think this is a separate issue unrelated to the OP's question.

Answers 2

pip does this sometimes if no matches (hits) are found:

$ pip search '':

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

$ pip search 'something':

OK

Could also be a server side bug, one that fails to provide the needed info. So, the fixing has to be done by pip devs, or server devs, or both.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment