Usuwasz pamięć podręczną pipa?


443

Muszę specjalnie zainstalować psycopg2 v2.4.1. Przypadkowo zrobiłem:

 pip install psycopg2

Zamiast:

 pip install psycopg2==2.4.1

To instaluje 2.4.4 zamiast wcześniejszej wersji.

Teraz nawet po zakończeniu pipowania odinstalowuję psycopg2 i próbuję zainstalować ponownie z prawidłową wersją, wygląda na to, że pip ponownie używa pamięci podręcznej, którą pobrał za pierwszym razem.

Jak zmusić pip do wyczyszczenia pamięci podręcznej pobierania i użycia konkretnej wersji, którą włączam do polecenia?


4
Aktualna najbardziej aktualna odpowiedź (opublikowana przez opiekuna pipa) to stackoverflow.com/a/61762308/1931274 .
pradyunsg

Odpowiedzi:


506

Jeśli używasz pip 6.0 lub nowszego, spróbuj dodać --no-cache-diropcję .

Jeśli używasz pipa starszego niż pip 6.0, zaktualizuj go przy pomocy pip install -U pip.


8
Zajrzałem do ~ / .pip, ale jest to pusty katalog. Twoja wskazówka dotycząca --ignore-install załatwiła sprawę!
Geuis

7
W OSX musiałem usunąć katalogi związane z pipem w$TMPDIR
Bryan P

2
Jeśli używasz virtualenv, być może będziesz musiał usunąć envs / {yourenvsname} / build / {packageinquestion} reż ...
Vajk Hermecz

6
W systemie Windows: widziałem, że katalog buforowania pip znajduje się w ~ \ AppData \ Local \ pip \ cache
Mercury

2
Musisz zrobić python -m pip install -U pipw systemie Windows. (Nie można go zaktualizować z powodu zablokowania pip.exepliku w inny sposób.)
jpmc26

456

Wyczyść katalog pamięci podręcznej, jeśli jest to właściwe dla twojego systemu

Linux i Unix

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

OS X

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache

6
To szalone, że trzy najlepsze odpowiedzi tak naprawdę nie odpowiadają na pytanie, i to jest pierwsza, która to robi.
AmphotericLewisAcid

1
Aktualna najbardziej aktualna odpowiedź (opublikowana przez opiekuna pipa) to stackoverflow.com/a/61762308/1931274 . Najlepszym podejściem jest teraz pip cache purge.
pradyunsg

104

Z dokumentacji na https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

Począwszy od wersji 6.0, pip zapewnia domyślną pamięć podręczną, która działa podobnie do przeglądarki internetowej. Gdy pamięć podręczna jest domyślnie włączona i domyślnie działa prawidłowo, możesz ją wyłączyć i zawsze uzyskiwać dostęp do PyPI, korzystając z tej --no-cache-dir opcji.


2
To właściwa odpowiedź ... link pokazuje również, gdzie pip ukrywa pamięć podręczną w systemach Linux, Windows i OS X.
jasonjwwilliams

3
Aby dodać, jeśli chcesz usunąć „zły” obiekt z pamięci podręcznej, spójrz na stronę, aby znaleźć lokalizację pliku pamięci podręcznej, i „znajdź” naruszający pakiet. Linux to ~ / .cache / pip, Mac to ~ / Library / Caches / pip, itp. Co ciekawe, psycopg2 był również moim pakietem problemowym, ale było tak, ponieważ istniejący pakiet został skompilowany dla innej biblioteki Postgresql, która już nie istnieje mój serwer.
Chris Cogdon

78

pip może zainstalować pakiet ignorując pamięć podręczną, tak jak to

pip --no-cache-dir install scipy

7
Odpowiedź @ dafeda zawiera te same informacje 4 miesiące temu
Foon


19

(opiekun pip tutaj!)

Od pip 6.0 (z powrotem w 2014 roku!) pip install, pip downloadA pip wheelpolecenia można powiedzieć, aby uniknąć używania pamięci podręcznej z --no-cache-diropcją. (np . pip install --no-cache-dir <package>:)

Od pip 10.0 (w 2018 roku!) pip configDodano polecenie, którego można użyć do skonfigurowania pipa tak, aby zawsze ignorował pamięć podręczną - pip config set global.cache-dir falsekonfiguruje pip, aby nie używał pamięci podręcznej „globalnie” (tj. We wszystkich poleceniach).

Od pip 20.1 pip ma pip cachepolecenie do zarządzania zawartością pamięci podręcznej pip.

  • pip cache purge usuwa wszystkie pliki kół z pamięci podręcznej.
  • pip cache remove matplotlib wybiórczo usuwa pliki związane z matplotlib z pamięci podręcznej.

Podsumowując, pip zapewnia wiele sposobów na dostosowanie sposobu korzystania z pamięci podręcznej:

  • pip install --no-cache-dir <package>: zainstaluj pakiet bez użycia pamięci podręcznej, tylko dla tego uruchomienia.
  • pip config set global.cache-dir false: skonfiguruj pip, aby nie używał pamięci podręcznej „globalnie” (we wszystkich poleceniach)
  • pip cache remove matplotlib: usuwa wszystkie pliki koła związane z matplotlib z pamięci podręcznej pip.
  • pip cache purge: aby usunąć wszystkie pliki z pamięci podręcznej pip.

Konkretny problem „instalowania niewłaściwej wersji z powodu buforowania” wymieniony w pytaniu został naprawiony w pip 1.4 (w 2013 roku!):

Napraw wiele problemów związanych z czyszczeniem i nieużywaniem katalogów kompilacji. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)


10

Jeśli chcesz ustawić tę --no-cache-diropcję domyślnie, możesz to zrobić w pip.conf:

[global]
no-cache-dir = false

Lokalizacja pip.confzależy od systemu operacyjnego. Więcej informacji znajduje się w dokumentacji .


9

Właśnie miałem podobny problem i odkryłem, że jedynym sposobem, aby uzyskać pip do uaktualnienia pakietu, było usunięcie katalogu $PWD/build( %CD%\buildw systemie Windows), który mógł pozostać z poprzednio niedokończonej instalacji lub poprzedniej wersji pip (teraz usuwa buduj katalogi po udanej instalacji).


6

W archlinux pip cache znajduje się w ~ / .cache / pip, mógłbym rozwiązać problem, usuwając znajdujący się w nim folder http.


6

Na moim komputerze Mac musiałem usunąć katalog pamięci podręcznej ~/Library/Caches/pip/




3

Jeśli używasz virtualenv, poszukaj buildkatalogu w katalogu głównym środowiska.


3

Musiałem usunąć% TEMP% \ pip-build W systemie Windows 7


1
Dzięki + 1. Korzystam również z systemu Windows 7 i znalazłem folder w folderze% TEMP% \ pip. % TEMP% jest zdefiniowany w zmiennych środowiskowych, jeśli ktoś nie jest pewien.
Simon


0

Lepszym sposobem na to jest usunięcie pamięci podręcznej i jej odbudowanie. W ten sposób, jeśli zainstalujesz go ponownie dla innych virtualenv, użyje pamięci podręcznej zamiast budować za każdym razem, gdy go instalujesz.

Na przykład, gdy go zainstalujesz, powie, że używa koła z pamięcią podręczną,

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

Po prostu usuń ten i uruchom ponownie instalację.


-2

(...) wygląda na to, że pip ponownie używa pamięci podręcznej (...)

Jestem prawie pewien, że tak się nie dzieje. Pip używany (nieprawidłowo) do ponownego użycia katalogu kompilacji, a nie pamięci podręcznej. Zostało to naprawione w wersji 1.4 pip, która została wydana w dniu 2013-07-23.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.