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.