Onde está a pasta de cache pip

98

Onde está Python pip pasta de cache ? Eu tive um erro durante a instalação e agora reinstalo pacotes usando arquivos de cache

Onde está esse diretório? Eu quero fazer backup deles para instalação no futuro. É possível ?

Por exemplo, eu tenho este:

Using cached cssselect-0.9.1.tar.gz

Eu pesquisei este diretório no google, mas tudo o que vi foi aprender a instalar a partir de uma pasta, quero encontrar o diretório de cache padrão.

E outra pergunta, esses arquivos de cache ficarão nesse diretório ou serão removidos em breve?

Arash Hatami
fonte
1
Depende do sistema operacional.
Martin Konecny
windows @MartinKonecny
Arash Hatami
3
Acredito que seja no ~\AppData\Local\pip\cacheWindows.
Fredrik
há muitos arquivos com nomes pouco claros como '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... posso encontrar exatamente o arquivo 'cssselect-0.9.1.tar.gz' ??? @fredrik
Arash Hatami
2
Um cache nem sempre é legível por humanos, como neste caso.
Fredrik

Respostas:

41

Depende do sistema operacional.

Com o pip 20.1 ou posterior, você pode encontrá-lo com:

pip cache dir

Por exemplo, com macOS:

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

Docs:

Hugo
fonte
Sim ... É uma pergunta antiga (cerca de 4 anos: D)
Arash Hatami
1
Velho, mas ainda relevante! github.com/hugovk/pypistats/pull/105/commits/…
Hugo
1
Veja também a PIP_CACHE_DIRvariável de ambiente para definir este diretório.
Alex Povel
128

O local padrão para o diretório de cache depende do sistema operacional:

Unix

~ / .cache / pip e respeita o diretório XDG_CACHE_HOME.

Mac OS

~ / Library / Caches / pip

janelas

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Wheel Cache

pip irá ler as rodas do subdiretório dentro do diretório de cache do pip e usar qualquer pacote encontrado lá. [recorte]

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

A localização do diretório de cache pode ser alterada por meio da opção de linha de comando --cache-dir.

ptim
fonte
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEestá vazia. find ~/.cache/pip | grep -i tensorshows tensorflow_determinisme silence_tensorflowrodas, mas não tensorflow-gpu. Ainda pip install tensorflow-gpudiz Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Onde mais devo procurar este arquivo?
BERS
(Eu também baixado tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whle verificados para duplicatas usando fdupes, mas não conseguiu encontrar qualquer ...)
BERS
24

Forma pitônica e 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'))

Nos bastidores, ele normaliza caminhos, gerencia diferentes locais para plataformas e sistemas operacionais exóticos e comuns, executa a pesquisa do registro do Windows.

Vale a pena mencionar que, se você tiver diferentes versões do Python instaladas, 2.x'es e 3.x'es, todos eles compartilham o mesmo local de cache.

Rabash
fonte
5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 no Ubuntu.
Gringo Suave
1
Se você quiser pipo próprio diretório de cache, também pode simplesmente usar from pip._internal.locations import USER_CACHE_DIRou python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"se estiver pegando coisas em um script, etc.
ryanjdillon
Por favor, não vá _internale busque valores. Os componentes internos do pip não devem ser usados ​​como uma biblioteca e estão sujeitos a alterações. pip cache dirno pip 20.1 e acima é a melhor maneira de obter esse valor.
pradyunsg
8

Você pode fazer backup da roda associada em vez de tentar fazer um backup da pasta de cache.

Baixe o wheel para csselect da versão 0.9.1 em /tmp/wheelhouse:

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

Instale a roda baixada:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
Fredrik
fonte
Quão estável / previsível é o cssselect-0.9.1-py2-none-any.whlnome do arquivo?
Blaise
Depende do que os mantenedores estão fazendo em seu setup.py ao empacotar.
Fredrik