pip использует неверную кэшированную версию пакета вместо указанной пользователем версии
Я сталкиваюсь с проблемой установки конкретной версии psycopg2 — 2.4.1. По ошибке я выполнил команду:
pip install psycopg2
Вместо того, чтобы указать нужную версию:
pip install psycopg2==2.4.1
В результате была установлена версия 2.4.4 вместо более ранней. Теперь, даже после того как я удалил psycopg2 с помощью команды pip uninstall psycopg2
и попытался снова установить нужную версию, pip, похоже, использует кэш, который был загружен в первый раз.
Как я могу заставить pip очистить кэш загрузки и установить конкретную версию, которую я указываю в команде?
5 ответ(ов)
Для очистки кеша pip на вашей системе выполните следующие действия.
Linux и Unix
Кеш можно найти по следующему пути:
~/.cache/pip # Учитывает переменную XDG_CACHE_HOME
OS X
На macOS кеш хранится здесь:
~/Library/Caches/pip
Windows
Для Windows путь к кешу будет следующим:
%LocalAppData%\pip\Cache
ОБНОВЛЕНИЕ
Начиная с версии pip 20.1
вы можете легко узнать полный путь к кешу на вашей операционной системе, выполнив в командной строке:
pip cache dir
Пример вывода на моей установке Ubuntu:
➜ pip3 cache dir
/home/tawanda/.cache/pip
В соответствии с документацией по адресу https://pip.pypa.io/en/latest/reference/pip_install.html#caching:
Начиная с версии 6.0, pip предоставляет кэш, который включен по умолчанию и работает подобно кэшу веб-браузера. Хотя кэш включен по умолчанию и рассчитан на то, чтобы вести себя правильно в большинстве случаев, вы можете отключить кэш и всегда получать доступ к PyPI, используя опцию --no-cache-dir
.
Вы можете установить пакет с помощью pip, игнорируя кэш, используя следующую команду:
pip --no-cache-dir install scipy
Это позволит вам установить scipy
, не используя кэшированные версии, что иногда полезно для устранения проблем с установкой или если вам требуется последняя версия пакета.
На Ubuntu мне пришлось удалить каталог /tmp/pip-build-root
.
У меня была похожая проблема, и я обнаружил, что единственный способ заставить pip обновить пакет — это удалить директорию $PWD/build
(на Windows это %CD%\build
), которая могла остаться после неудачной установки или предыдущей версии pip. Сейчас pip удаляет директории сборки после успешной установки.
Как заставить pip переустановить текущую версию?
Как справиться с несколькими версиями Python и PIP?
Как исправить ошибку "error: externally-managed-environment" при использовании pip 3?
'pip' не распознан как командa внутреннего или внешнего формата
"Попытка установить pymssql на Ubuntu 12.04 с помощью pip"