Удаление кеша пипса?


443

Мне нужно установить psycopg2 v2.4.1 специально. Я случайно сделал:

 pip install psycopg2

Вместо:

 pip install psycopg2==2.4.1

Это устанавливает 2.4.4 вместо более ранней версии.

Теперь даже после того, как я удалю pip psycopg2 и попытаюсь переустановить с правильной версией, похоже, что pip повторно использует кэш, который он загрузил в первый раз.

Как заставить pip очистить кеш загрузки и использовать конкретную версию, которую я включаю в команду?


4
Текущий самый актуальный ответ (опубликованный сопровождающим pip): stackoverflow.com/a/61762308/1931274 .
pradyunsg

Ответы:


507

Если вы используете pip 6.0 или новее, попробуйте добавить --no-cache-dirопцию .

Если вы используете pip старше pip 6.0, обновите его до pip install -U pip.


8
Я посмотрел в ~ / .pip, но это пустой каталог. Ваш совет по --ignore-installed сделал свое дело!
Geuis

7
На OSX мне пришлось удалить связанные с pip каталоги в$TMPDIR
Bryan P

2
Если вы используете virtualenv, вам, возможно, придется удалить envs / {yourenvsname} / build / {packageinquestion} dir ...
Вайк Хермеч

6
В Windows: я видел, что каталог кэширования pip находится в ~ \ AppData \ Local \ pip \ cache
Mercury

2
Вы должны сделать python -m pip install -U pipна Windows. (Он не может обновиться из-за блокировки pip.exeфайла в противном случае.)
jpmc26

456

Очистите каталог кэша, где это необходимо для вашей системы

Linux и Unix

~/.cache/pip  # and it respects the XDG_CACHE_HOME directory.

OS X

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache

6
Это безумие, что первые три ответа на самом деле не отвечают на вопрос, и это первый ответ.
AmphotericLewisAcid

1
Текущий самый актуальный ответ (опубликованный сопровождающим pip): stackoverflow.com/a/61762308/1931274 . Лучший подход сейчас pip cache purge.
pradyunsg

104

Из документации по адресу https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

Начиная с версии 6.0, pip предоставляет кеш по умолчанию, который работает так же, как и в веб-браузере. Хотя кеш включен по умолчанию и предназначен для правильной работы по умолчанию, вы можете отключить кеш и всегда получать доступ к PyPI, используя эту --no-cache-dir опцию.


2
Это правильный ответ ... ссылка также показывает, где pip хранит кэш в Linux, Windows и OS X.
jasonjwwilliams

3
И, чтобы добавить, если вы хотите удалить «плохой» объект из вашего кэша, взгляните на страницу, чтобы найти расположение файла кэша, и «найдите» нарушающий пакет. Linux - ~ / .cache / pip, Mac - ~ / Library / Caches / pip и т. Д. Интересно, что psycopg2 также был моим проблемным пакетом, но это было потому, что существующий пакет был скомпилирован для другой библиотеки Postgresql, которая больше не существует в мой сервер.
Крис Когдон,

78

pip может установить пакет, игнорируя кеш, вот так

pip --no-cache-dir install scipy

7
Ответ @ dafeda предоставляет ту же информацию 4 месяца назад
Foon


19

(Пиппер здесь!)

Так как пип 6.0 (обратно в 2014 году!), pip install, pip downloadИ pip wheelкоманды можно сказать , чтобы избежать использования кэш - памяти с --no-cache-dirопцией. (например: pip install --no-cache-dir <package>)

Начиная с pip 10.0 (еще в 2018 году!), pip configБыла добавлена ​​команда, которую можно использовать для настройки pip на всегда игнорирование кеша - pip config set global.cache-dir falseнастраивает pip так, чтобы он не использовал кеш «глобально» (т.е. во всех командах).

Начиная с pip 20.1, pip имеет pip cacheкоманду для управления содержимым кеша pip.

  • pip cache purge удаляет все файлы колеса в кеше.
  • pip cache remove matplotlib выборочно удаляет файлы, связанные с matplotlib из кеша.

Таким образом, pip предоставляет множество способов настроить использование кэша:

  • pip install --no-cache-dir <package>: установить пакет без использования кэша, только для этого запуска.
  • pip config set global.cache-dir false: настроить pip, чтобы не использовать кеш "глобально" (во всех командах)
  • pip cache remove matplotlib: удаляет все файлы колеса, связанные с matplotlib, из кэша pip.
  • pip cache purge: очистить все файлы из кэша pip.

Проблема, связанная с «установкой неправильной версии из-за кэширования», упомянутая в вопросе, была исправлена ​​в пипе 1.4 (еще в 2013 году!):

Исправьте ряд проблем, связанных с очисткой и не повторным использованием директорий сборки. (№ 413, № 709, № 634, № 602, № 939, № 865, № 948)


У меня pip 20.1.1, но когда я пытаюсь очистить pip cache, я получаю следующую ошибку: ERROR: No matching packagesно я уже установил много разных пакетов
Mikhail_Sam

10

Если вы хотите установить --no-cache-dirопцию по умолчанию, вы можете поместить это в pip.conf:

[global]
no-cache-dir = false

Расположение pip.confзависит от вашей ОС. Смотрите документацию для получения дополнительной информации.


9

У меня просто была похожая проблема, и я обнаружил, что единственный способ получить пакет pip для обновления пакета - это удалить каталог $PWD/build( %CD%\buildв Windows), который мог остаться из ранее незаконченной установки или предыдущей версии pip (теперь он удаляет сборка каталогов после успешной установки).


6

На archlinux pip кеш находится в ~ / .cache / pip, я мог бы решить мою проблему, удалив внутри него папку http.


6

На моем Mac мне пришлось удалить каталог кеша ~/Library/Caches/pip/


5

Поскольку пип 20.1b1 , выпущенный 21 апреля 2020 года, и «добавленная pip cacheкоманда для проверки / управления кэшем колес пипса», можно выполнить эту команду:

pip cache purge

Справочное руководство находится здесь:
https://pip.pypa.io/en/stable/reference/pip_cache/
Соответствующий запрос на получение ответа здесь .




3

Мне пришлось удалить% TEMP% \ pip-build в Windows 7


1
Благодаря + 1. Я также использую Windows 7 и нашел папку в папке% TEMP% \ pip. % TEMP% определяется в ваших переменных среды, если кто-то не уверен.
Симон


0

Лучший способ сделать это - удалить кеш и перестроить его. Таким образом, если вы установите его снова для другого virtualenv, он будет использовать кэш вместо сборки каждый раз при установке.

Например, когда вы установите его, он скажет, что использует кэшированное колесо,

Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh

Просто удалите его и перезапустите установку.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.