Видалення кеша піп-файлу?


443

Мені потрібно спеціально встановити psycopg2 v2.4.1. Я випадково зробив:

 pip install psycopg2

Замість:

 pip install psycopg2==2.4.1

Встановлюється 2.4.4 замість попередньої версії.

Тепер навіть після того, як я видаляю файл pscopg2 та намагаюся перевстановити правильну версію, виявляється, що pip повторно використовує кеш, який він завантажив уперше.

Як я можу змусити pip очистити кеш завантаження та використовувати конкретну версію, яку я включаю до команди?


4
Поточна найновіша відповідь (розміщена службою підтримки піп) - stackoverflow.com/a/61762308/1931274 .
pradyunsg

Відповіді:


506

Якщо ви використовуєте pip 6.0 або новішу версію, спробуйте додати цю --no-cache-dirопцію .

Якщо ви використовуєте pip, старший за pip 6.0, оновіть його pip install -U pip.


8
Я заглянув у ~ / .pip, але це порожній каталог. Ваша порада щодо --ignore-встановила трюк!
Гейс

7
На OSX мені довелося видалити каталоги, пов'язані з pip, у$TMPDIR
Bryan P

2
Якщо ви використовуєте virtualenv, вам, можливо, доведеться видалити envs / {yourenvsname} / build / {packageinquestion} dir ...
Vajk Hermecz

6
У Windows: Я бачив каталог кешування піп-файлів у ~ \ 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.

ОС X

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache

6
Гарно, що три найкращі відповіді насправді не відповідають на це питання, і це перший, який робить.
AmphotericLewisAcid

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

104

З документації на https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

Починаючи з v6.0, pip забезпечує кеш за замовчуванням, який функціонує аналогічно веб-браузеру. Хоча кеш увімкнено за замовчуванням і призначений робити правильно, за замовчуванням ви можете вимкнути кеш і завжди отримати доступ до PyPI, використовуючи цю --no-cache-dir опцію.


2
Це правильна відповідь ... посилання також показує, де піп приховує кеш на 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.

Конкретна проблема "встановлення неправильної версії через кешування", згадана в питанні, була виправлена ​​в pip 1.4 (ще у 2013 році!):

Виправити ряд питань, пов’язаних із очищенням та невтомним використанням збірних каталогів. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)


10

Якщо ви хочете встановити --no-cache-dirпараметр за замовчуванням, ви можете ввести це в pip.conf:

[global]
no-cache-dir = false

Місце розташування pip.confзалежить від вашої ОС. Докладнішу інформацію див. У документації .


9

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


6

У кеш-файлі Archlinux розміщений за адресою ~ / .cache / pip, я міг би вирішити свою проблему, видаливши папку http всередині неї.


6

На своєму mac мені довелося видалити кеш-каталог ~/Library/Caches/pip/




3

Якщо ви використовуєте virtualenv, шукайте buildкаталог під корінням вашого середовища.


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.