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 изнутри виртуального окружения?
Как установить pip на macOS или OS X?
Ошибка EnvironmentError: не найден mysql_config при установке mysql-python с помощью pip
Как заставить pip переустановить текущую версию?
Ошибка bash: команда pip не найдена