Où est le dossier de cache pip

93

Où se trouve le dossier de cache Python pip ? J'ai eu une erreur lors de l'installation et maintenant réinstaller les packages à l'aide de fichiers de cache

Où est ce répertoire? Je veux les sauvegarder pour une installation ultérieure. C'est possible ?

Par exemple, j'ai celui-ci:

Using cached cssselect-0.9.1.tar.gz

J'ai cherché Google pour ce répertoire, mais tout ce que j'ai vu, c'est apprendre à installer à partir d'un dossier, je veux trouver le répertoire de cache par défaut.

Et une autre question, ces fichiers de cache resteront dans ce répertoire ou seront bientôt supprimés?

Arash Hatami
la source
1
Cela dépend du système d'exploitation.
Martin Konecny
windows @MartinKonecny
Arash Hatami
3
Je crois que c'est sous ~\AppData\Local\pip\cacheWindows.
fredrik
il y a beaucoup de fichiers avec des noms peu clairs comme «0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451» ... puis-je trouver exactement le fichier «cssselect-0.9.1.tar.gz» ??? @fredrik
Arash Hatami
2
Un cache n'est pas toujours lisible par l'homme, comme dans ce cas.
fredrik

Réponses:

33

Cela dépend du système d'exploitation.

Avec pip 20.1 ou version ultérieure, vous pouvez le trouver avec:

pip cache dir

Par exemple avec macOS:

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

Documents:

Hugo
la source
Ouais ... C'est une vieille question (environ 4 ans: D)
Arash Hatami
1
Vieux mais toujours d'actualité! github.com/hugovk/pypistats/pull/105/commits/…
Hugo
Voir aussi la PIP_CACHE_DIRvariable d'environnement pour définir ce répertoire.
Alex Povel
123

L'emplacement par défaut du répertoire de cache dépend du système d'exploitation:

Unix

~ / .cache / pip et il respecte le répertoire XDG_CACHE_HOME.

macOS

~ / Bibliothèque / Caches / pip

les fenêtres

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Cache de roue

pip lira les roues du sous-répertoire dans le répertoire de cache pip et utilisera tous les packages qui s'y trouvent. [couper]

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

L'emplacement du répertoire de cache peut être modifié via l'option de ligne de commande --cache-dir.

ptim
la source
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEest vide. find ~/.cache/pip | grep -i tensorspectacles tensorflow_determinismet silence_tensorflowroues, mais pas tensorflow-gpu. Pourtant pip install tensorflow-gpudit Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Où dois-je chercher ce fichier ailleurs?
bers
(J'ai également téléchargé tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whlet vérifié les doublons en utilisant fdupes, mais je n'ai pas pu en trouver ...)
bers
24

Voie pythonique et multiplateforme:

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'))

Sous le capot, il normalise les chemins, gère différents emplacements pour les systèmes d'exploitation et les plates-formes exotiques et ordinaires, effectue une recherche dans le registre Windows.

Il peut être intéressant de mentionner que si vous avez différentes versions de Python installées, 2.x'es et 3.x'es, elles partagent toutes le même emplacement de cache.

Rabash
la source
5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 sur Ubuntu.
Gringo Suave
1
Si vous vouliez piple propre répertoire de cache de votre propre répertoire, vous pouvez également simplement utiliser from pip._internal.locations import USER_CACHE_DIRou python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"si vous saisissez des choses dans un script, etc.
ryanjdillon
Veuillez ne pas aller _internalchercher des valeurs. Les composants internes de pip ne sont pas destinés à être utilisés comme une bibliothèque et peuvent être modifiés. pip cache dirsur pip 20.1 et au-dessus est le meilleur moyen d'obtenir cette valeur.
pradyunsg
8

Vous pouvez sauvegarder la roue associée plutôt que d'essayer d'effectuer une sauvegarde du dossier de cache.

Téléchargez la roue pour csselect de la version 0.9.1 dans /tmp/wheelhouse:

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

Installez la roue téléchargée:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
Fredrik
la source
Dans quelle mesure le cssselect-0.9.1-py2-none-any.whlnom du fichier est-il stable / prévisible ?
Blaise
Dépend de ce que les responsables font dans leur setup.py lors de l'empaquetage.
fredrik