Rimozione della cache di pip?


443

Devo installare specificamente psycopg2 v2.4.1. Ho accidentalmente fatto:

 pip install psycopg2

Invece di:

 pip install psycopg2==2.4.1

Questo installa 2.4.4 invece della versione precedente.

Ora anche dopo aver pip disinstallato psycopg2 e tentato di reinstallare con la versione corretta, sembra che pip stia riutilizzando la cache scaricata per la prima volta.

Come posso forzare pip a svuotare la sua cache di download e utilizzare la versione specifica che sto includendo nel comando?


4
L'attuale risposta più aggiornata (pubblicata da un manutentore di pip) è stackoverflow.com/a/61762308/1931274 .
pradyunsg,

Risposte:


507

Se si utilizza pip 6.0 o versioni successive, provare ad aggiungere l' --no-cache-diropzione .

Se si utilizza pip precedente a pip 6.0, aggiornarlo con pip install -U pip.


8
Ho cercato in ~ / .pip ma è una directory vuota. Il tuo consiglio su --ignore-installato ha funzionato!
Geuis

7
Su OSX, ho dovuto eliminare le directory relative al pip in$TMPDIR
Bryan P

2
Se usi virtualenv potresti dover eliminare envs / {yourenvsname} / build / {packageinquestion} dir ...
Vajk Hermecz,

6
In Windows: ho visto che la directory di memorizzazione nella cache di pip si trova in ~ \ AppData \ Local \ pip \ cache
Mercury

2
Devi fare python -m pip install -U pipsu Windows. (Impossibile eseguire l'aggiornamento a causa del blocco del pip.exefile altrimenti.)
jpmc26

456

Cancella la directory della cache dove appropriato per il tuo sistema

Linux e Unix

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

OS X

~/Library/Caches/pip

finestre

%LocalAppData%\pip\Cache

6
È pazzesco che le prime tre risposte non rispondano effettivamente alla domanda, e questa è la prima.
AmphotericLewisAcid

1
L'attuale risposta più aggiornata (pubblicata da un manutentore di pip) è stackoverflow.com/a/61762308/1931274 . L'approccio migliore ora è pip cache purge.
pradyunsg,

104

Dalla documentazione su https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

A partire dalla v6.0, pip fornisce una cache di default che funziona in modo simile a quella di un browser web. Mentre la cache è attiva per impostazione predefinita ed è progettata per fare la cosa giusta per impostazione predefinita, è possibile disabilitare la cache e accedere sempre a PyPI utilizzando l' --no-cache-dir opzione.


2
Questa è la risposta giusta ... il link mostra anche dove pip blocca la cache su Linux, Windows e OS X.
jasonjwwilliams

3
E per aggiungere, se vuoi rimuovere l'oggetto "cattivo" dalla tua cache, dai un'occhiata alla pagina per trovare la posizione del file cache e "trova" il pacchetto offensivo. Linux è ~ / .cache / pip, Mac è ~ / Library / Caches / pip, ecc. È interessante notare che psycopg2 era anche il mio pacchetto problematico, ma era perché il pacchetto esistente era stato compilato per una diversa libreria Postgresql, che non esiste più su il mio server.
Chris Cogdon,

78

pip può installare un pacchetto ignorando la cache, in questo modo

pip --no-cache-dir install scipy

7
La risposta di @ dafeda fornisce le stesse informazioni 4 mesi fa
Foon


19

(manutentore pip qui!)

Dal pip 6.0 (di nuovo nel 2014!), pip install, pip downloadE pip wheelcomandi possono essere detto di evitare di usare la cache con l' --no-cache-diropzione. (ad es . pip install --no-cache-dir <package>:)

A partire da pip 10.0 (nel 2018!), È pip configstato aggiunto un comando, che può essere utilizzato per configurare pip per ignorare sempre la cache - pip config set global.cache-dir falseconfigura pip per non utilizzare la cache "a livello globale" (cioè in tutti i comandi).

Da pip 20.1, pip ha un pip cachecomando per gestire il contenuto della cache di pip.

  • pip cache purge rimuove tutti i file della ruota nella cache.
  • pip cache remove matplotlib rimuove selettivamente dalla cache i file relativi a un matplotlib.

In breve, pip offre molti modi per modificare il modo in cui utilizza la cache:

  • pip install --no-cache-dir <package>: installa un pacchetto senza usare la cache, solo per questa corsa.
  • pip config set global.cache-dir false: configura pip per non usare la cache "globalmente" (in tutti i comandi)
  • pip cache remove matplotlib: rimuove tutti i file delle ruote relativi a matplotlib dalla cache di pip.
  • pip cache purge: per cancellare tutti i file dalla cache di pip.

Il problema specifico del problema "installazione della versione errata a causa della memorizzazione nella cache" menzionato nella domanda è stato risolto nel pip 1.4 (nel 2013!):

Risolve una serie di problemi relativi alla pulizia e al non riutilizzo delle directory di compilazione. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)


Ho pip 20.1.1 ma quando provo l'eliminazione della cache pip ottengo il prossimo errore: ERROR: No matching packagesma ho già installato molti pacchetti diversi
Mikhail_Sam

10

Se desideri impostare l' --no-cache-diropzione per impostazione predefinita, puoi inserirla in pip.conf:

[global]
no-cache-dir = false

La posizione di pip.confdipende dal tuo sistema operativo. Vedi la documentazione per maggiori informazioni.


9

Ho appena avuto un problema simile e ho scoperto che l'unico modo per ottenere pip per aggiornare il pacchetto era eliminare la directory $PWD/build( %CD%\buildsu Windows) che potrebbe essere stata lasciata da un'installazione precedentemente incompiuta o da una versione precedente di pip (ora elimina il compilare le directory dopo una corretta installazione).


6

Nella cache pip di archlinux si trova in ~ / .cache / pip, potrei risolvere il mio problema rimuovendo la cartella http al suo interno.


6

Sul mio mac ho dovuto rimuovere la directory della cache ~/Library/Caches/pip/




3

Se si utilizza virtualenv, cercare la builddirectory nella radice degli ambienti.


3

Ho dovuto eliminare% TEMP% \ pip-build su Windows 7


1
Grazie + 1. Sto anche usando Windows 7 e ho trovato la cartella nella mia cartella% TEMP% \ pip. % TEMP% è definito nelle variabili ambientali se qualcuno non è sicuro.
Simon,


0

Un modo migliore per farlo è eliminare la cache e ricostruirla. In questo modo, se lo installi nuovamente per altri virtualenv, utilizzerà la cache invece di crearla ogni volta che la installi.

Ad esempio, quando lo installi, dirà che utilizza la ruota cache,

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

Basta cancellarlo e riavviare l'installazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.