¿Eliminar el caché de pip?

443

Necesito instalar psycopg2 v2.4.1 específicamente. Accidentalmente hice:

 pip install psycopg2

En vez de:

 pip install psycopg2==2.4.1

Eso instala 2.4.4 en lugar de la versión anterior.

Ahora, incluso después de que pip desinstale psycopg2 e intente reinstalar con la versión correcta, parece que pip está reutilizando el caché que descargó la primera vez.

¿Cómo puedo forzar a pip a borrar su caché de descarga y usar la versión específica que incluyo en el comando?

Geuis
fuente
44
La respuesta actual más actualizada (publicada por un encargado de mantenimiento de pip) es stackoverflow.com/a/61762308/1931274 .
Pradyunsg

Respuestas:

506

Si usa pip 6.0 o más reciente, intente agregar la --no-cache-diropción .

Si usa pip anterior a pip 6.0, actualícelo con pip install -U pip.

sholsapp
fuente
8
Miré en ~ / .pip pero es un directorio vacío. Su consejo sobre --no instalado-hizo el truco!
Geuis
77
En OSX, tuve que eliminar los directorios relacionados con pip en$TMPDIR
Bryan P
2
Si usa virtualenv, es posible que deba eliminar envs / {yourenvsname} / build / {packageinquestion} dir ...
Vajk Hermecz
66
En Windows: he visto que el directorio de almacenamiento en caché de pip está en ~ \ AppData \ Local \ pip \ cache
Mercury
2
Tienes que hacer python -m pip install -U pipen Windows. (De lo contrario, no se puede actualizar debido al bloqueo del pip.exearchivo.)
jpmc26
456

Borre el directorio de caché donde sea apropiado para su sistema

Linux y Unix

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

OS X

~/Library/Caches/pip

Ventanas

%LocalAppData%\pip\Cache
Dr. Manhattan
fuente
66
Es una locura que las tres respuestas principales en realidad no respondan la pregunta, y esta es la primera que sí lo hace.
AmphotericLewisAcid
1
La respuesta actual más actualizada (publicada por un encargado de mantenimiento de pip) es stackoverflow.com/a/61762308/1931274 . El mejor enfoque ahora es pip cache purge.
Pradyunsg
104

De la documentación en https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

A partir de v6.0, pip proporciona una caché predeterminada que funciona de manera similar a la de un navegador web. Mientras el caché está activado de forma predeterminada y está diseñado para hacer lo correcto de forma predeterminada, puede desactivar el caché y siempre acceder a PyPI utilizando la --no-cache-dir opción.

dafeda
fuente
2
Esta es la respuesta correcta ... el enlace también espectáculos donde pip guarda la memoria caché en Linux, Windows y OS X.
jasonjwwilliams
3
Y para agregar, si desea eliminar el objeto "incorrecto" de su caché, eche un vistazo a la página para encontrar la ubicación del archivo de caché y "encuentre" el paquete ofensivo. Linux es ~ / .cache / pip, Mac es ~ / Library / Caches / pip, etc. Curiosamente, psycopg2 también fue mi paquete problemático, pero fue porque el paquete existente se compiló para una biblioteca Postgresql diferente, que ya no existe en mi servidor
Chris Cogdon
78

pip puede instalar un paquete ignorando el caché, como este

pip --no-cache-dir install scipy
Yihe
fuente
77
La respuesta de @dafeda proporciona la misma información hace 4 meses
Foon
30

En Ubuntu, tuve que eliminar /tmp/pip-build-root.

Jace Browning
fuente
2
En realidad / tmp / pip-build-% username_that_running_pip%
Alexey Sviridov
2
En Ubuntu 14 fue /tmp/pip_build_root/(nota subraya)
Emil Stenström
18

(¡mantenedor de pip aquí!)

Desde pip 6.0 (nuevo en 2014!), pip install, pip downloadY pip wheellos comandos pueden ser invocados para evitar el uso de la caché con la --no-cache-diropción. (por ejemplo: pip install --no-cache-dir <package>)

Desde pip 10.0 (¡en 2018!), pip configSe agregó un comando, que se puede usar para configurar pip para ignorar siempre el caché: pip config set global.cache-dir falseconfigura pip para que no use el caché "globalmente" (es decir, en todos los comandos).

Desde pip 20.1, pip tiene un pip cachecomando para administrar el contenido de la caché de pip.

  • pip cache purge elimina todos los archivos de la rueda en el caché.
  • pip cache remove matplotlib elimina selectivamente los archivos relacionados con un matplotlib del caché.

En resumen, pip proporciona muchas formas de ajustar cómo usa el caché:

  • pip install --no-cache-dir <package>: instale un paquete sin usar el caché, solo para esta ejecución.
  • pip config set global.cache-dir false: configure pip para que no use el caché "globalmente" (en todos los comandos)
  • pip cache remove matplotlib: elimina todos los archivos de rueda relacionados con matplotlib del caché de pip.
  • pip cache purge: para borrar todos los archivos de la caché de pip.

El problema específico de "instalación de la versión incorrecta debido al almacenamiento en caché" mencionado en la pregunta se solucionó en pip 1.4 (¡en 2013!):

Solucione una serie de problemas relacionados con la limpieza y no reutilizar directorios de compilación. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)

pradyunsg
fuente
10

Si desea establecer la --no-cache-diropción por defecto, puede poner esto en pip.conf:

[global]
no-cache-dir = false

La ubicación de pip.confdepende de su sistema operativo. Vea la documentación para más información.

Rotareti
fuente
9

Acabo de tener un problema similar y descubrí que la única forma de obtener pip para actualizar el paquete era eliminar el directorio $PWD/build( %CD%\builden Windows) que podría haber quedado de una instalación previamente inacabada o una versión anterior de pip (ahora elimina el crear directorios después de una instalación exitosa).

dhobbs
fuente
6

En archlinux pip cache se encuentra en ~ / .cache / pip, podría resolver mi problema eliminando la carpeta http dentro de él.

eneepo
fuente
6

En mi Mac tuve que eliminar el directorio de caché ~/Library/Caches/pip/

matlads
fuente
4

En Windows 7, tuve que eliminar %HOMEPATH%/pip.

Jace Browning
fuente
3

Si usa virtualenv, busque el builddirectorio bajo la raíz de su entorno.

Vajk Hermecz
fuente
3

Tuve que eliminar% TEMP% \ pip-build en Windows 7

Mikhail M
fuente
1
Gracias + 1. También estoy usando Windows 7 y encontré la carpeta en mi carpeta% TEMP% \ pip. El% TEMP% se define en sus variables ambientales si alguien no está seguro.
Simon
2

En Mac OS (Mavericks), tuve que eliminar /tmp/pip-build/

Marcelo Soares
fuente
0

Una mejor manera de hacerlo es eliminar el caché y reconstruirlo. De esta manera, si lo instala de nuevo para otro virtualenv, usará el caché en lugar de construir cada vez que lo instale.

Por ejemplo, cuando lo instales, dirá que usa la rueda en caché,

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

Simplemente elimine ese y reinicie su instalación.

Izana
fuente
-2

(...) parece que pip está reutilizando el caché (...)

Estoy bastante seguro de que eso no es lo que está sucediendo. Pip utilizado para (incorrectamente) reutilizar el directorio de compilación, no el caché. Esto se solucionó en la versión 1.4 de pip que se lanzó el 23/07/2013.

Piotr Dobrogost
fuente