Menghapus cache pip?

443

Saya perlu menginstal psycopg2 v2.4.1 secara khusus. Saya tidak sengaja melakukannya:

 pip install psycopg2

Dari pada:

 pip install psycopg2==2.4.1

Itu menginstal 2.4.4 bukannya versi sebelumnya.

Sekarang bahkan setelah saya mem-uninstall psycopg2 dan mencoba menginstal ulang dengan versi yang benar, tampaknya pip menggunakan kembali cache yang diunduh pertama kali.

Bagaimana saya bisa memaksa pip untuk menghapus cache unduhannya dan menggunakan versi spesifik yang saya sertakan dalam perintah?

Geuis
sumber
4
Jawaban terbaru saat ini (diposting oleh pemelihara pip) adalah stackoverflow.com/a/61762308/1931274 .
pradyunsg

Jawaban:

507

Jika menggunakan pip 6.0 atau yang lebih baru, coba tambahkan --no-cache-diropsi .

Jika menggunakan pip yang lebih lama dari pip 6.0, tingkatkan dengan pip install -U pip.

sholsapp
sumber
8
Saya mencari di ~ / .pip tetapi itu adalah direktori kosong. Kiat Anda pada --ignore -install berhasil!
Geuis
7
Di OSX, saya harus menghapus direktori terkait pip di$TMPDIR
Bryan P
2
Jika menggunakan virtualenv Anda mungkin harus menghapus dir envs / {yourenvsname} / build / {packageinquestion} ...
Vajk Hermecz
6
Di windows: Saya telah melihat direktori caching pip di ~ \ AppData \ Local \ pip \ cache
Mercury
2
Yang harus Anda lakukan python -m pip install -U pippada Windows. (Tidak dapat memutakhirkan karena mengunci pip.exefile sebaliknya.)
jpmc26
456

Bersihkan direktori cache yang sesuai untuk sistem Anda

Linux dan Unix

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

OS X

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache
Dr Manhattan
sumber
6
Kacang-kacangan bahwa tiga jawaban teratas tidak benar-benar menjawab pertanyaan, dan ini adalah yang pertama.
AmphotericLewisAcid
1
Jawaban terbaru saat ini (diposting oleh pemelihara pip) adalah stackoverflow.com/a/61762308/1931274 . Pendekatan terbaik sekarang adalah pip cache purge.
pradyunsg
104

Dari dokumentasi di https://pip.pypa.io/en/latest/reference/pip_install.html#caching :

Dimulai dengan v6.0, pip menyediakan cache on-by-default yang fungsinya mirip dengan browser web. Saat cache diaktifkan secara default dan dirancang untuk melakukan hal yang benar secara default, Anda dapat menonaktifkan cache dan selalu mengakses PyPI dengan memanfaatkan --no-cache-dir opsi.

dafeda
sumber
2
Ini adalah jawaban yang tepat ... tautan juga menunjukkan di mana pip menyembunyikan cache di Linux, Windows & OS X.
jasonjwwilliams
3
Dan untuk menambahkan, jika Anda ingin menghapus objek "buruk" dari cache Anda, lihat halaman untuk menemukan lokasi file cache, dan "menemukan" paket yang menyinggung. Linux adalah ~ / .cache / pip, Mac adalah ~ / Library / Cache / pip, dll. Menariknya, psycopg2 juga merupakan paket masalah saya, tetapi itu karena paket yang ada dikompilasi untuk pustaka Postgresql yang berbeda, yang tidak lagi ada pada server saya.
Chris Cogdon
78

pip dapat menginstal paket yang mengabaikan cache, seperti ini

pip --no-cache-dir install scipy
Yihe
sumber
7
@dafeda menjawab memberikan informasi yang sama 4 bulan lalu
Foon
30

Di Ubuntu, saya harus menghapus /tmp/pip-build-root.

Jace Browning
sumber
2
Sebenarnya / tmp / pip-build-% username_that_running_pip%
Alexey Sviridov
2
Pada Ubuntu 14 itu /tmp/pip_build_root/(catatan menggarisbawahi)
Emil Stenström
18

(pemelihara pip di sini!)

Sejak pip 6.0 (kembali tahun 2014!) pip install,, pip downloadDan pip wheelperintah dapat diperintahkan untuk menghindari penggunaan cache dengan --no-cache-diropsi. (misalnya: pip install --no-cache-dir <package>)

Sejak pip 10.0 (kembali tahun 2018!), Sebuah pip configperintah telah ditambahkan, yang dapat digunakan untuk mengkonfigurasi pip untuk selalu mengabaikan cache - pip config set global.cache-dir falsemengkonfigurasi pip untuk tidak menggunakan cache "secara global" (yaitu dalam semua perintah).

Sejak pip 20.1, pip memiliki pip cacheperintah untuk mengelola konten cache pip.

  • pip cache purge menghapus semua file roda di cache.
  • pip cache remove matplotlib secara selektif menghapus file yang terkait dengan matplotlib dari cache.

Singkatnya, pip menyediakan banyak cara untuk mengubah cara penggunaan cache:

  • pip install --no-cache-dir <package>: instal paket tanpa menggunakan cache, untuk menjalankan ini saja.
  • pip config set global.cache-dir false: konfigurasikan pip untuk tidak menggunakan cache "global" (di semua perintah)
  • pip cache remove matplotlib: menghapus semua file roda yang terkait dengan matplotlib dari cache pip.
  • pip cache purge: untuk menghapus semua file dari cache pip.

Masalah khusus "menginstal versi yang salah karena caching" masalah yang disebutkan dalam pertanyaan diperbaiki di pip 1.4 (kembali 2013!):

Perbaiki sejumlah masalah terkait pembersihan dan jangan gunakan kembali direktori pembangunan. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)

pradyunsg
sumber
10

Jika Anda ingin mengatur --no-cache-diropsi secara default, Anda dapat memasukkan ini ke pip.conf:

[global]
no-cache-dir = false

Lokasi pip.conftergantung pada OS Anda. Lihat dokumentasi untuk info lebih lanjut.

Rotareti
sumber
9

Saya baru saja mengalami masalah yang sama dan menemukan bahwa satu-satunya cara untuk mendapatkan pip untuk memutakhirkan paket adalah dengan menghapus direktori $PWD/build( %CD%\buildpada Windows) yang mungkin tersisa dari instalasi yang sebelumnya belum selesai atau versi sebelumnya dari pip (sekarang menghapus membangun direktori setelah instalasi berhasil).

dhobb
sumber
6

Pada cache cache archlinux terletak di ~ / .cache / pip, saya bisa menyelesaikan masalah saya dengan menghapus folder http di dalamnya.

eneepo
sumber
6

Di mac saya, saya harus menghapus direktori cache ~/Library/Caches/pip/

matlads
sumber
4

Di Windows 7, saya harus menghapus %HOMEPATH%/pip.

Jace Browning
sumber
3

Jika menggunakan virtualenv, cari builddirektori di bawah root lingkungan Anda.

Vajk Hermecz
sumber
3

Saya harus menghapus% TEMP% \ pip-build Di Windows 7

Mikhail M
sumber
1
Terima kasih +1. Saya juga menggunakan Windows 7 dan menemukan folder di bawah folder% TEMP% \ pip saya. % TEMP% didefinisikan dalam variabel lingkungan Anda jika ada yang tidak yakin.
Simon
2

Di Mac OS (Mavericks), saya harus menghapus /tmp/pip-build/

Marcelo Soares
sumber
0

Cara yang lebih baik untuk melakukannya adalah dengan menghapus cache dan membangunnya kembali. Dengan cara ini, jika Anda menginstalnya lagi untuk virtualenv lainnya, itu akan menggunakan cache alih-alih membangun setiap kali Anda menginstalnya.

Misalnya, ketika Anda menginstalnya, ia akan mengatakan itu menggunakan roda cache,

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

Hapus saja yang itu dan mulai ulang instal Anda.

Izana
sumber
-2

(...) tampaknya pip menggunakan kembali cache (...)

Saya cukup yakin bukan itu yang terjadi. Pip dulu (salah) menggunakan kembali direktori bangunan bukan cache. Ini diperbaiki dalam versi 1.4 dari pip yang dirilis pada 2013-07-23.

Piotr Dobrogost
sumber