pip не работает после обновления

сегодня я обновил с 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, как в моих примерах.

какие идеи?

3 ответов


Я не смог воспроизвести это с помощью pip 7.1.2 и Python 2.7.8 или 3.5.1 в Linux.

на xmlrpclib docs есть это, чтобы сказать о 'недостатках':

вызовы методов также могут вызвать специальный экземпляр ошибки, используемый для сигнала Ошибки сервера XML-RPC

это означает, что pip сообщает о проблеме на стороне сервера (pypi).

на сайт состояния инфраструктуры Python отчеты о проблемах с поиск pip на 2015-09-11 и 2015-09-12.

Я подозреваю, что это не ошибка в pip, а проблема с pypi.python.org о датах, о которых идет речь.Этот вопрос был задан на 2015-09-11.

аналогичная ошибка была зарегистрирована на pypi системе Bitbucket РЕПО на 2015-09-11, подкрепляя свою теорию.

интересно, что есть еще один подобный ошибка зарегистрирована в репозитории GitHub pypi. В этом случае срок поиска регулярное выражение:

pip search "^docker-compose$"

Я могу воспроизвести эту ошибку на Python 2.7.8 и Python3.5.1, pip-7.1.2 и pip-8.1.1 на Linux; однако я не вижу ничего в документации pip, чтобы предположить, что поиск pip поддерживает регулярное выражение и ответ regex Штатов не поддерживается, поэтому я думаю, что это отдельная проблема, не связанная с вопросом OP.


pip делает это иногда, если совпадений (хитов) не найдено:

$ pip search '':

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

$ pip search 'something':

OK

также может быть ошибка на стороне сервера, которая не может предоставить необходимую информацию. Таким образом, исправление должно быть сделано pip devs, или серверные разработчики,или оба.


когда я не получил ответ на этот вопрос в прошлом году, я опубликовал проблема на GitHub, и было определено, что моя проблема была вызвана тем, что сервер PyPi/pip не работает (только часть поиска, я думаю).

Я не могу быть уверен, но, похоже, было больше комментариев/ответов на этот вопрос, когда он был активен в прошлом году. Я действительно думал, что кто-то разместил этот ответ здесь (по крайней мере, в комментарии или что-то еще), но это, очевидно, не здесь сейчас.

Я думаю, что @tedder42 имеет другую проблему, чем я, потому что в последнее время простоя не было в PyPi. Даже если бы кто-то опубликовал реальный ответ на его вопрос, у меня не было бы возможности проверить его. Поэтому я думаю, что лучший способ действий-игнорировать его щедрость, и если у него все еще есть проблема, ее следует превратить в новый вопрос.