¿Dónde está la carpeta de caché de pip?

93

¿Dónde está la carpeta de caché de Python pip ? Tuve un error durante la instalación y ahora reinstalo paquetes usando archivos de caché

¿Dónde está ese directorio? Quiero hacer una copia de seguridad de ellos para instalarlos en el futuro. Es posible ?

Por ejemplo, tengo este:

Using cached cssselect-0.9.1.tar.gz

Busqué en Google este directorio, pero todo lo que vi es aprender a instalar desde una carpeta, quiero encontrar el directorio de caché predeterminado.

Y otra pregunta, ¿estos archivos de caché permanecerán en ese directorio o se eliminarán pronto?

Arash Hatami
fuente
1
Depende del sistema operativo.
Martin Konecny
windows @MartinKonecny
Arash Hatami
3
Creo que está en ~\AppData\Local\pip\cacheWindows.
fredrik
hay muchos archivos con nombres poco claros como '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... ¿puedo encontrar exactamente el archivo 'cssselect-0.9.1.tar.gz' ??? @fredrik
Arash Hatami
2
Un caché no siempre es legible por humanos, como en este caso.
fredrik

Respuestas:

33

Depende del sistema operativo.

Con pip 20.1 o posterior, puede encontrarlo con:

pip cache dir

Por ejemplo con macOS:

$ pip cache dir
/Users/hugo/Library/Caches/pip

Documentos:

Hugo
fuente
Sí ... es una vieja pregunta (alrededor de 4 años: D)
Arash Hatami
1
¡Viejo pero aún relevante! github.com/hugovk/pypistats/pull/105/commits/…
Hugo
Consulte también la PIP_CACHE_DIRvariable de entorno para configurar este directorio.
Alex Povel
123

La ubicación predeterminada del directorio de caché depende del sistema operativo:

Unix

~ / .cache / pip y respeta el directorio XDG_CACHE_HOME.

Mac OS

~ / Biblioteca / Cachés / pip

Ventanas

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Caché de rueda

pip leerá de las ruedas del subdirectorio dentro del directorio de caché de pip y usará cualquier paquete que se encuentre allí. [recorte]

https://pip.pypa.io/en/latest/reference/pip_install/#caching

La ubicación del directorio de caché se puede cambiar a través de la opción de línea de comando --cache-dir.

ptim
fuente
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEesta vacio. find ~/.cache/pip | grep -i tensorespectáculos tensorflow_determinismy silence_tensorflowruedas, pero no tensorflow-gpu. Sin embargo, pip install tensorflow-gpudice Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. ¿Dónde más debería buscar este archivo?
bers
(También descargué tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whly verifiqué duplicados usando fdupes, pero no pude encontrar ninguno ...)
bers
24

Forma pitónica y multiplataforma:

import pip
from distutils.version import LooseVersion

if LooseVersion(pip.__version__) < LooseVersion('10'):
    # older pip version
    from pip.utils.appdirs import user_cache_dir
else:
    # newer pip version
    from pip._internal.utils.appdirs import user_cache_dir

print(user_cache_dir('pip'))
print(user_cache_dir('wheel'))

Bajo el capó, normaliza rutas, administra diferentes ubicaciones para plataformas y sistemas operativos exóticos y comunes, realiza búsquedas en el registro de Windows.

Vale la pena mencionar, si tiene instaladas diferentes versiones de Python, 2.x'es y 3.x'es, todas comparten la misma ubicación de caché.

Rabash
fuente
5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 en Ubuntu.
Gringo Suave
1
Si quería pipdirectorio de caché propia 's también se puede utilizar solo from pip._internal.locations import USER_CACHE_DIRo python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"si estaban agarrando cosas en un script, etc.
ryanjdillon
Por favor, no ingrese a _internalbuscar valores. Los componentes internos de pip no están destinados a ser utilizados como una biblioteca y están sujetos a cambios. pip cache diren pip 20.1 y superior es la mejor manera de obtener este valor.
pradyunsg
8

Puede hacer una copia de seguridad de la rueda asociada en lugar de intentar realizar una copia de seguridad de la carpeta de caché.

Descargue la rueda para csselect de la versión 0.9.1 en /tmp/wheelhouse:

pip wheel --wheel-dir=/tmp/wheelhouse cssselect==0.9.1

Instale la rueda descargada:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
Fredrik
fuente
¿Qué tan estable / predecible es el cssselect-0.9.1-py2-none-any.whlnombre del archivo?
Blaise
Depende de lo que estén haciendo los mantenedores en su setup.py al empaquetar.
fredrik