Apa cara termudah untuk menghapus semua paket yang diinstal oleh pip?
616
Saya mencoba untuk memperbaiki salah satu virtualenvs saya - Saya ingin mengatur ulang semua pustaka yang diinstal kembali ke yang sesuai dengan produksi.
Apakah ada cara cepat dan mudah untuk melakukan ini dengan pip?
@patelshahrukh menghapus instalan python JANGAN menghapus paket pip. tolong HINDARI melakukan itu, karena kemungkinan besar TIDAK AKAN BEKERJA seperti yang Anda pikirkan, dan , tergantung pada bagaimana Anda menginstal python lagi, dapat meninggalkan mesin Anda dalam keadaan tidak stabil yang lebih banyak pekerjaan untuk diperbaiki .
Saya telah menemukan cuplikan ini sebagai solusi alternatif. Ini adalah penghapusan perpustakaan yang lebih anggun daripada membuat ulang virtualenv:
pip freeze | xargs pip uninstall -y
Jika Anda memiliki paket yang diinstal melalui VCS, Anda harus mengecualikan baris tersebut dan menghapus paket secara manual (diangkat dari komentar di bawah):
Saya menemukan ini solusi yang baik, semata-mata karena tidak sepenuhnya menghapus lingkungan virtual - saya mungkin telah membuat perubahan misalnya postactivateyang akan tetap ada.
niceguydave
5
Setelah menjalankan ini saya menyadari itu menghapus setuptoolspaket. Saya menyelesaikan masalah dengan mengikuti petunjuk di sini: stackoverflow.com/questions/7446187/…
Dan
1
@ gerty3000 ya, ini akan (saat pertanyaannya diajukan) menghapus semua paket yang diinstal dalam virtual-env. di lingkungan Anda, mungkin setuptools akan lebih baik dipasang di lokasi global saja?
blueberryfields
7
Anda juga dapat menggunakan pip freeze --exclude-editable | xargs pip uninstall -yuntuk mengabaikan paket VCS tanpa menggunakan pola grep
Ini akan bekerja untuk semua sistem Mac, Windows, dan Linux. Untuk mendapatkan daftar semua paket pip dalam file requirement.txt (Catatan: Ini akan menimpa requirement.txt jika ada yang lain akan membuat yang baru, juga jika Anda tidak ingin mengganti persyaratan lama.txt kemudian berikan nama file yang berbeda di semua perintah berikut di tempat requirement.txt).
pip freeze > requirements.txt
Sekarang untuk menghapus satu per satu
pip uninstall -r requirements.txt
Jika kita ingin menghapus semuanya sekaligus
pip uninstall -r requirements.txt -y
Jika Anda bekerja pada proyek yang sudah ada yang memiliki requirements.txtfile dan lingkungan Anda telah menyimpang, cukup ganti requirements.txtdari contoh di atas dengan toberemoved.txt. Kemudian, setelah Anda melakukan langkah-langkah di atas, Anda dapat menggunakan requirements.txtuntuk memperbarui lingkungan Anda yang sekarang bersih.
Dan Untuk satu perintah tanpa membuat file apa pun (Seperti yang disarankan @joeb).
mungkin layak disebutkan bahwa Anda dipaksa menimpa file requirement.txt mereka, kalau-kalau mereka tidak tahu. :)
Dave Gregory
4
Selain itu, jika seseorang ingin menghapus semua paket, menambahkan "-y" akan melakukannya. Contoh:pip uninstall -r requirements.txt -y
David Metcalfe
58
Anda dapat menggunakannya pip uninstall -y -r <(pip freeze)untuk melakukan semuanya sekaligus.
joeb
1
@ Joeb ya kita bisa melakukannya juga.
Harshad Kavathiya
1
@HarshadKavathiya Anda dapat menggunakan file lain untuk menyimpan pembekuan pip, seperti "current.txt", jadi requirement.txt dapat tetap tidak tersentuh tepuk tangan
NikosKeyz
118
Ini bekerja dengan yang terbaru. Saya pikir itu cara terpendek dan paling deklaratif untuk melakukannya.
virtualenv --clear MYENV
Tapi biasanya saya hanya menghapus dan membuat ulang virtualenv karena aturan imutabilitas!
Sebenarnya - tampaknya (dari apa yang baru saja saya temui) sedangkan wipeenvsementara di lingkungan melempar kesalahan dan tidak menghapus apa pun jika digunakan dalam konteks pip install -epembangunan, mencoba untuk menggunakan virtualenv --clear MYENVtidak membuang kesalahan dan tidak menghapus satu pun dari paket yang mungkin telah Anda instal sebelumnya di lingkungan. Setidaknya ini yang terjadi pada OSX. Lihat bitbucket.org/dhellmann/virtualenvwrapper/issues/211/… untuk info lebih lanjut.
mpacer
2
wipeenvadalah alias yang disediakan oleh virtualenvwrapper, jadi tidak semua orang memilikinya.
Jonathan Hartley
2
yah, ini semacam trik kotor, tetapi bekerja seperti sulap. Saya lebih suka semua orang menggunakan pip uninstall -r requirement.txt -y. Itu membuat pembersihan yang bagus.
Muema
84
Saya ingin mengangkat jawaban ini dari bagian komentar karena ini adalah salah satu solusi paling elegan di utas. Penghargaan penuh untuk jawaban ini diberikan ke @joeb .
pip uninstall -y -r <(pip freeze)
Ini berfungsi baik bagi saya untuk kasus penggunaan membersihkan folder paket pengguna saya di luar konteks virtualenv yang banyak jawaban di atas tidak menangani.
Sunting: Adakah yang tahu bagaimana membuat perintah ini berfungsi di Makefile?
Bonus: Bash alias
Saya menambahkan ini ke profil bash saya untuk kenyamanan:
alias pipuninstallall="pip uninstall -y -r <(pip freeze)"
Lalu lari:
pipuninstallall
Alternatif untuk pipenv
Jika Anda kebetulan menggunakan pipenv Anda bisa menjalankan:
Saya suka tetapi tidak bekerja dalam kasus nol ( pip freezemenghasilkan output apa-apa jika tidak ada paket yang diinstal, dan kemudian pip uninstallmengeluh, sayangnya).
Eric G
Hmm tangkapan yang bagus. Mungkin itu bisa dibungkus dengan fungsi bash yang memeriksa apakah output pembekuan pip tidak kosong. Saya tidak melihat cara yang bagus untuk mencapai itu sambil menjaga perintah satu kalimat pendek yang bagus.
Taylor Edmiston
1
menggunakan sh secara default, tetapi sintaksis substitusi <(...)adalah bashism. Jadi Anda bisa menggunakan bash -c "...", atau bekerja dengan melakukanpip freeze | pip uninstall -r /dev/stdin
Caesar
Tidak berfungsi dengan Azure Notebook:ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
SeaDude
54
Jawaban lain yang menggunakan pip listatau pip freezeharus menyertakan yang--local lain itu juga akan menghapus paket yang ditemukan di ruang nama umum.
Jadi inilah cuplikan yang saya gunakan secara teratur
Ini bekerja sampai memukul sebuah paket yang dihasilkan kesalahan ini: ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.. Maka saya tidak bisa menghapus modul lagi.
SeaDude
39
Metode 1 (dengan pip freeze)
pip freeze | xargs pip uninstall -y
Metode 2 (dengan pip list)
pip list | awk '{print $1}'| xargs pip uninstall -y
sudo tidak diperlukan, dan sangat mungkin berbahaya untuk digunakan tanpa pertimbangan yang cermat, karena ini mempengaruhi pengaturan mesin global. lihat jawaban ini misalnya: stackoverflow.com/questions/15028648/…
blueberryfields
6
Metode 2 ( pip list) berfungsi dengan baik sampai Anda memiliki pip tanpa sengaja menghapus sendiri -_-
Justin
20
Saya mengelolanya dengan melakukan hal berikut:
Buat file persyaratan yang disebut reqs.txt dengan daftar paket yang diinstal saat ini
pip freeze > reqs.txt
kemudian hapus semua paket dari reqs.txt
pip uninstall \
-y # remove the package with prompting for confirmation-r reqs.txt
Saya suka metode ini karena Anda selalu memiliki file persyaratan pip untuk kembali jika Anda melakukan kesalahan. Itu juga bisa diulang.
Apakah ini bahkan menangani kasus di mana ada instalasi yang dapat diedit (pada dasarnya setuptools mengembangkan mode instal) yang membuat file .egg-info lokal yang kemudian mengganggu proses instalasi / penghapusan instalasi lainnya? Karena ini adalah kumpulan file, sepertinya tidak tahu cara menangani keberadaan mereka, dan alih-alih menghapus instalan apa pun, itu membuat struktur direktori lokal di bawah MYENV lengkap dengan: `> Eksekusi python baru di MYENV / bin / python3.4> Juga membuat executable di MYENV / bin / python> Menginstal setuptools, pip, wheel ... done.` Tetapi MYENV belum me-reset lingkungan!
mpacer
16
Pada Windows jika Anda pathdikonfigurasi dengan benar, Anda dapat menggunakan:
Hanya peringatan bahwa ini tidak sepenuhnya solid karena Anda mungkin mengalami masalah seperti 'File tidak ditemukan' tetapi tetap dapat bekerja dalam beberapa kasus
EDIT: For clarity: uninsadalah file arbitrer yang memiliki data yang ditulis padanya ketika perintah ini dijalankan:pip freeze > unins
File yang ditulisnya kemudian digunakan untuk menghapus instalasi paket-paket tersebut dengan persetujuan tersirat / persetujuan sebelumnya melalui pip uninstall -y -r unins
(menambahkan ini sebagai jawaban, karena saya tidak memiliki reputasi yang cukup untuk mengomentari jawaban @blueberryfields)
@blueberryfields jawaban berfungsi dengan baik, tetapi gagal jika tidak ada paket untuk menghapus (yang bisa menjadi masalah jika ini "uninstall semua" adalah bagian dari skrip atau makefile). Ini dapat diatasi dengan xargs -rketika menggunakan versi GNU untuk xargs:
Jika input standar tidak mengandung nonblank, jangan jalankan perintah. Biasanya, perintah dijalankan sekali walaupun tidak ada input. Opsi ini adalah ekstensi GNU.
Ini adalah cara termudah bagi saya untuk menghapus semua paket python.
from pip import get_installed_distributions
from os import system
for i in get_installed_distributions():
system("pip3 uninstall {} -y -q".format(i.key))
Dukungan lintas platform dengan hanya menggunakan pip:
#!/usr/bin/env pythonfrom sys import stderr
from pip.commands.uninstall importUninstallCommandfrom pip import get_installed_distributions
pip_uninstall =UninstallCommand()
options, args = pip_uninstall.parse_args([
package.project_name
for package in
get_installed_distributions()ifnot package.location.endswith('dist-packages')])
options.yes =True# Don't confirm before uninstall# set `options.require_venv` to True for virtualenv restrictiontry:print pip_uninstall.run(options, args)exceptOSErroras e:if e.errno !=13:raise e
print>> stderr,"You lack permissions to uninstall this package.
Perhaps run with sudo? Exiting."
exit(13)# Plenty of other exceptions can be thrown, e.g.: `InstallationError`# handle them if you want to.
Dalam kasus saya, saya tidak sengaja menginstal sejumlah paket secara global menggunakan Homebrew yang diinstal pippada macOS. Cara termudah untuk kembali ke paket default adalah sederhana:
Jawaban ini mengasumsikan terlalu banyak tentang lingkungan dan tidak secara langsung menyelesaikan masalah jika Anda menggunakan pyenv misalnya.
Tandai
@ Mark Yah yakin jika Anda menggunakan pyenv, maka Anda perlu melakukan sesuatu yang berbeda. Dalam kasus umum bahwa Anda tidak, saya percaya ini adalah solusi paling sederhana dan paling tidak retas. Perhatikan bahwa kondisi ini secara eksplisit dinyatakan di awal jawaban.
Radon Rosborough
OP bertanya tentang virtualenvs. Dia tidak menyebutkan secara spesifik menggunakan Mac atau minuman untuk menginstal Python. Karena itu Anda tidak dapat mengasumsikan OS atau minuman digunakan - dan jawaban ini tidak akan menyelesaikan SEMUA kondisi. Jika Anda fokus pada pemecahan untuk lingkungan menggunakan alat seperti pip - Anda akan membahas konteks lingkungan tempat Anda berada. Harapan itu masuk akal.
Markus
1
@Mark Saya mengerti posisi Anda. Kami dapat setuju untuk tidak setuju. Saya hanya ingin membantu orang-orang dari Google yang mengeklik tautan berlabel "Apa cara termudah untuk menghapus semua paket yang dipasang oleh pip?" ketika mereka benar-benar ingin menghapus semua paket yang diinstal secara global oleh pip.
Radon Rosborough
Setuju dengan @RadonRosborough, judul tautannya mewakili mengapa saya mendarat di sini, meskipun OP sebenarnya tidak menanyakan pertanyaan yang sama.
Kenn Sebesta
1
Di Command Shell of Windows, perintah pip freeze | xargs pip uninstall -ytidak akan berfungsi. Jadi bagi Anda yang menggunakan Windows, saya telah menemukan cara alternatif untuk melakukannya.
Salin semua nama paket pip yang diinstal dari pip freezeperintah ke file .txt .
Lalu, buka lokasi file .txt Anda dan jalankan perintahpip uninstall -r *textfile.txt*
Saya percaya jawaban ini tidak menambahkan banyak informasi baru, saya lebih suka menyarankan perbaikan untuk jawaban serupa yang sudah ada seperti ini: stackoverflow.com/a/45475070/11138259
sinoroc
-1
Pip tidak memiliki cara untuk mengetahui paket apa yang diinstal olehnya dan paket apa yang diinstal oleh manajer paket sistem Anda. Untuk ini, Anda perlu melakukan sesuatu seperti ini
untuk distro berbasis rpm (ganti python2.7 dengan versi python yang Anda instal dengan pip):
find /usr/lib/python2.7/|while read f;doif! rpm -qf "$f"&>/dev/null; then
echo "$f"
fi
done |xargs rm -fr
untuk distribusi berbasis deb:
find /usr/lib/python2.7/|while read f;doif! dpkg-query -S "$f"&>/dev/null; then
echo "$f"
fi
done |xargs rm -fr
lalu untuk membersihkan direktori kosong yang tersisa:
find /usr/lib/python2.7-type d -empty |xargs rm -fr
Saya menemukan jawaban teratas sangat menyesatkan karena akan menghapus semua (kebanyakan?) Paket python dari distribusi Anda dan mungkin meninggalkan Anda dengan sistem yang rusak.
Dengan segala hormat, ini tampaknya sebanding. Mengapa tidak dpkg-query -S '/usr/lib/python2.7/*', ekstrak nama, dan dpkg-query -Lsetiap nama untuk membuang file terkait? Sudah disiapkan manifes. Keberatan utama saya adalah bahwa alih-alih menargetkan paket yang diinstal di mana saja tetapi dengan pip, Anda menargetkan paket yang diinstal oleh apa pun selain manajer yang Anda harapkan, dan di lokasi yang umumnya tidak disentuh pip oleh pip. pip list -ldaftar paket yang diinstal secara lokal, dan beberapa bahkan akan pip install --target=.... Menghapus semua dir yang kosong akan menggigit Anda juga!
Jawaban:
Saya telah menemukan cuplikan ini sebagai solusi alternatif. Ini adalah penghapusan perpustakaan yang lebih anggun daripada membuat ulang virtualenv:
Jika Anda memiliki paket yang diinstal melalui VCS, Anda harus mengecualikan baris tersebut dan menghapus paket secara manual (diangkat dari komentar di bawah):
sumber
postactivate
yang akan tetap ada.setuptools
paket. Saya menyelesaikan masalah dengan mengikuti petunjuk di sini: stackoverflow.com/questions/7446187/…pip freeze --exclude-editable | xargs pip uninstall -y
untuk mengabaikan paket VCS tanpa menggunakan pola grepIni akan bekerja untuk semua sistem Mac, Windows, dan Linux. Untuk mendapatkan daftar semua paket pip dalam file requirement.txt (Catatan: Ini akan menimpa requirement.txt jika ada yang lain akan membuat yang baru, juga jika Anda tidak ingin mengganti persyaratan lama.txt kemudian berikan nama file yang berbeda di semua perintah berikut di tempat requirement.txt).
Sekarang untuk menghapus satu per satu
Jika kita ingin menghapus semuanya sekaligus
Jika Anda bekerja pada proyek yang sudah ada yang memiliki
requirements.txt
file dan lingkungan Anda telah menyimpang, cukup gantirequirements.txt
dari contoh di atas dengantoberemoved.txt
. Kemudian, setelah Anda melakukan langkah-langkah di atas, Anda dapat menggunakanrequirements.txt
untuk memperbarui lingkungan Anda yang sekarang bersih.Dan Untuk satu perintah tanpa membuat file apa pun (Seperti yang disarankan @joeb).
sumber
pip uninstall -r requirements.txt -y
pip uninstall -y -r <(pip freeze)
untuk melakukan semuanya sekaligus.Ini bekerja dengan yang terbaru. Saya pikir itu cara terpendek dan paling deklaratif untuk melakukannya.
Tapi biasanya saya hanya menghapus dan membuat ulang virtualenv karena aturan imutabilitas!
sumber
wipeenv
? virtualenvwrapper.readthedocs.org/en/latest/…wipeenv
sementara di lingkungan melempar kesalahan dan tidak menghapus apa pun jika digunakan dalam kontekspip install -e
pembangunan, mencoba untuk menggunakanvirtualenv --clear MYENV
tidak membuang kesalahan dan tidak menghapus satu pun dari paket yang mungkin telah Anda instal sebelumnya di lingkungan. Setidaknya ini yang terjadi pada OSX. Lihat bitbucket.org/dhellmann/virtualenvwrapper/issues/211/… untuk info lebih lanjut.wipeenv
adalah alias yang disediakan oleh virtualenvwrapper, jadi tidak semua orang memilikinya.Saya ingin mengangkat jawaban ini dari bagian komentar karena ini adalah salah satu solusi paling elegan di utas. Penghargaan penuh untuk jawaban ini diberikan ke @joeb .
Ini berfungsi baik bagi saya untuk kasus penggunaan membersihkan folder paket pengguna saya di luar konteks virtualenv yang banyak jawaban di atas tidak menangani.
Sunting: Adakah yang tahu bagaimana membuat perintah ini berfungsi di Makefile?
Bonus: Bash alias
Saya menambahkan ini ke profil bash saya untuk kenyamanan:
Lalu lari:
Alternatif untuk pipenv
Jika Anda kebetulan menggunakan pipenv Anda bisa menjalankan:
sumber
pip freeze
menghasilkan output apa-apa jika tidak ada paket yang diinstal, dan kemudianpip uninstall
mengeluh, sayangnya).<(...)
adalah bashism. Jadi Anda bisa menggunakan bash -c "...", atau bekerja dengan melakukanpip freeze | pip uninstall -r /dev/stdin
ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Jawaban lain yang menggunakan
pip list
ataupip freeze
harus menyertakan yang--local
lain itu juga akan menghapus paket yang ditemukan di ruang nama umum.Jadi inilah cuplikan yang saya gunakan secara teratur
Ref:
pip freeze --help
sumber
ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
. Maka saya tidak bisa menghapus modul lagi.Metode 1 (dengan
pip freeze
)Metode 2 (dengan
pip list
)Metode 3 (dengan
virtualenv
)sumber
pip list
) berfungsi dengan baik sampai Anda memiliki pip tanpa sengaja menghapus sendiri -_-Saya mengelolanya dengan melakukan hal berikut:
Buat file persyaratan yang disebut reqs.txt dengan daftar paket yang diinstal saat ini
kemudian hapus semua paket dari reqs.txt
Saya suka metode ini karena Anda selalu memiliki file persyaratan pip untuk kembali jika Anda melakukan kesalahan. Itu juga bisa diulang.
sumber
Cara tercepat adalah membuat ulang virtualenv sepenuhnya. Saya berasumsi Anda memiliki file requirement.txt yang cocok dengan produksi, jika tidak:
sumber
Pada Windows jika Anda
path
dikonfigurasi dengan benar, Anda dapat menggunakan:Seharusnya kasus serupa untuk sistem seperti Unix:
Hanya peringatan bahwa ini tidak sepenuhnya solid karena Anda mungkin mengalami masalah seperti 'File tidak ditemukan' tetapi tetap dapat bekerja dalam beberapa kasus
EDIT: For clarity:
unins
adalah file arbitrer yang memiliki data yang ditulis padanya ketika perintah ini dijalankan:pip freeze > unins
File yang ditulisnya kemudian digunakan untuk menghapus instalasi paket-paket tersebut dengan persetujuan tersirat / persetujuan sebelumnya melalui
pip uninstall -y -r unins
File akhirnya dihapus setelah selesai.
sumber
Menggunakan fungsi virtualenvwrapper :
Lihat dokumentasi wipeenv
sumber
wipeenv
Pertama, tambahkan semua paket ke
requirements.txt
Lalu hapus semua
sumber
Ini pertanyaan lama yang saya tahu tetapi saya sengaja menemukannya sehingga untuk referensi di masa mendatang Anda sekarang dapat melakukan ini:
dari dokumentasi pip versi 8.1
sumber
Untuk pengguna Windows, ini yang saya gunakan di Windows PowerShell
sumber
(menambahkan ini sebagai jawaban, karena saya tidak memiliki reputasi yang cukup untuk mengomentari jawaban @blueberryfields)
@blueberryfields jawaban berfungsi dengan baik, tetapi gagal jika tidak ada paket untuk menghapus (yang bisa menjadi masalah jika ini "uninstall semua" adalah bagian dari skrip atau makefile). Ini dapat diatasi dengan
xargs -r
ketika menggunakan versi GNU untukxargs
:dari
man xargs
:sumber
Kasusnya mungkin bahwa seseorang harus menjalankan perintah ini beberapa kali untuk mendapatkan yang kosong
pip3 freeze --local
.sumber
Ini adalah cara termudah bagi saya untuk menghapus semua paket python.
sumber
Dukungan lintas platform dengan hanya menggunakan
pip
:sumber
Ini adalah perintah yang bekerja untuk saya:
sumber
cara mudah cross-platform yang kuat dan bekerja di pipenv juga adalah:
oleh pipenv:
tetapi tidak akan memperbarui piplock atau pipfile jadi waspadalah
sumber
Jika Anda menjalankan
virtualenv
:misalnya, jika virtualenv Anda adalah
/Users/you/.virtualenvs/projectx
, maka Anda akan menjalankan:jika Anda tidak tahu di mana virtual env Anda berada, Anda dapat menjalankan
which python
dari dalam virtual env yang diaktifkan untuk mendapatkan pathsumber
Dalam kasus saya, saya tidak sengaja menginstal sejumlah paket secara global menggunakan Homebrew yang diinstal
pip
pada macOS. Cara termudah untuk kembali ke paket default adalah sederhana:Atau, jika Anda menggunakan
pip3
:sumber
pip freeze
perintah ke file .txt .pip uninstall -r *textfile.txt*
sumber
Jika Anda menggunakan
pew
, Anda dapat menggunakan perintah wipeenv :pew wipeenv [env]
sumber
Saya menggunakan opsi --user untuk menghapus semua paket yang diinstal di situs pengguna.
sumber
Pip tidak memiliki cara untuk mengetahui paket apa yang diinstal olehnya dan paket apa yang diinstal oleh manajer paket sistem Anda. Untuk ini, Anda perlu melakukan sesuatu seperti ini
untuk distro berbasis rpm (ganti python2.7 dengan versi python yang Anda instal dengan pip):
untuk distribusi berbasis deb:
lalu untuk membersihkan direktori kosong yang tersisa:
Saya menemukan jawaban teratas sangat menyesatkan karena akan menghapus semua (kebanyakan?) Paket python dari distribusi Anda dan mungkin meninggalkan Anda dengan sistem yang rusak.
sumber
dpkg-query -S '/usr/lib/python2.7/*'
, ekstrak nama, dandpkg-query -L
setiap nama untuk membuang file terkait? Sudah disiapkan manifes. Keberatan utama saya adalah bahwa alih-alih menargetkan paket yang diinstal di mana saja tetapi dengan pip, Anda menargetkan paket yang diinstal oleh apa pun selain manajer yang Anda harapkan, dan di lokasi yang umumnya tidak disentuh pip oleh pip.pip list -l
daftar paket yang diinstal secara lokal, dan beberapa bahkan akanpip install --target=...
. Menghapus semua dir yang kosong akan menggigit Anda juga!