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. Даже если бы кто-то опубликовал реальный ответ на его вопрос, у меня не было бы возможности проверить его. Поэтому я думаю, что лучший способ действий-игнорировать его щедрость, и если у него все еще есть проблема, ее следует превратить в новый вопрос.