Ada --user
opsi untuk pip yang dapat menginstal paket Python per pengguna:
pip install --user [python-package-name]
Saya menggunakan opsi ini untuk menginstal paket pada server yang saya tidak memiliki akses root. Yang saya butuhkan sekarang adalah menghapus paket yang diinstal pada pengguna saat ini. Saya mencoba menjalankan perintah ini:
pip uninstall --user [python-package-name]
Tapi saya mendapat:
no such option: --user
Bagaimana saya bisa menghapus paket yang saya instal pip install --user
, selain menemukan dan menghapus paket secara manual?
Saya telah menemukan artikel ini
pip tidak dapat menghapus instalasi dari direktori paket-situs-pengguna per-pengguna
yang menjelaskan bahwa menghapus paket dari direktori pengguna tidak didukung. Menurut artikel jika itu diterapkan dengan benar maka dengan
pip uninstall [package-name]
paket yang diinstal juga akan dicari di direktori pengguna. Tapi masih ada masalah bagi saya. Bagaimana jika paket yang sama dipasang di seluruh sistem dan per-pengguna? Bagaimana jika seseorang perlu menargetkan direktori pengguna tertentu?
sumber
--user
itu, uninstall tanpa--user
akan melakukan apa yang Anda inginkan.Jawaban:
Setelah mengujinya menggunakan Python 3.5 dan pip 7.1.2 di Linux, situasinya tampak seperti ini:
pip install --user somepackage
menginstal ke$HOME/.local
, dan menghapus itu berfungsi menggunakanpip uninstall somepackage
.Ini benar apakah
somepackage
dipasang di seluruh sistem atau tidak secara bersamaan.Jika paket diinstal di kedua tempat, hanya paket lokal yang akan dihapus. Untuk menghapus instalasi paket menggunakan seluruh sistem
pip
, pertama uninstall secara lokal, kemudian jalankan perintah uninstall yang sama lagi, denganroot
hak istimewa.Selain direktori instalasi pengguna yang telah ditentukan,
pip install --target somedir somepackage
akan menginstal paket kesomedir
. Tidak ada cara untuk menghapus instalasi paket dari tempat seperti itu menggunakanpip
. (Tapi ada permintaan tarikan yang agak tua pada Github yang mengimplementasikannyapip uninstall --target
.)Karena satu-satunya tempat yang
pip
akan menghapus instalan adalah sistem-lokal dan pengguna-lokal yang telah ditentukan, Anda harus menjalankanpip uninstall
sebagai masing-masing pengguna untuk menghapus dari direktori instalasi lokal pengguna tertentu.sumber
jedi
diinstal di/usr/lib64/python2.7/site-packages/
. Ketika saya melakukannya, sebagai pengguna normal:pip install --user jedi
dan kemudianpip uninstall jedi
, pip mencoba untuk menghapus/usr/lib64/python2.7/site-packages/jedi
dan kemudian memulaiPermission denied
. Jadi, jika--user
tidak ada untuk perintah uninstall, bagaimana cara saya kirim uninstall bukan untuk mencoba uninstall/usr/lib64/python2.7/site-packages/jedi
tapi~/.local/lib64/python3.6/site-packages/jedi
?contoh untuk menghapus paket 'oauth2client' pada MacOS:
sumber
Berhati-hatilah, bagi mereka yang menggunakan
pip install --user some_pkg
di dalam lingkungan virtual .Dalam hal ini, Anda harus menonaktifkan lingkungan virtual saat ini , kemudian menggunakan yang sesuai
python
/pip
dapat dieksekusi untuk mendaftar atau menghapus instalasi paket situs pengguna:Perhatikan bahwa masalah ini dilaporkan beberapa tahun yang lalu . Dan sepertinya kesimpulan saat ini adalah:
--user
tidak valid di dalam virtual env'spip
, karena lokasi pengguna tidak benar-benar masuk akal untuk lingkungan virtual.sumber
--user
di dalam virtual env, apakah ada cara untuk mengembalikan itu?, Karenapip list
tidak berfungsi ....Saya pikir itu mungkin untuk menghapus paket yang diinstal dengan
--user
flag. Yang ini bekerja untuk saya;pip freeze --user | xargs pip uninstall -y
Untuk python 3;
pip3 freeze --user | xargs pip3 uninstall -y
Tapi entah bagaimana perintah ini tidak menghapus instalan setuptools dan pip. Setelah perintah itu (jika Anda benar-benar ingin membersihkan python) Anda dapat menghapusnya dengan;
pip uninstall setuptools && pip uninstall pip
sumber
Jawabannya belum memungkinkan . Anda harus menghapusnya secara manual.
sumber
Seperti @ thomas-lotze telah sebutkan, saat ini pip tooling tidak melakukan itu karena tidak ada opsi --user yang sesuai. Tapi yang saya temukan adalah saya bisa check in ~ / .local / bin dan mencari pip #. # Yang menurut saya cocok dengan opsi --user.
Dalam kasus saya:
Dan kemudian hapus instalasi dengan versi pip tertentu.
sumber
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
untuk semuanya kecuali paket yang diinstal dalam mode yang dapat dieditSaya menjalankan Anaconda versi 4.3.22 dan lingkungan python3.6.1, dan mengalami masalah ini. Inilah sejarah dan perbaikannya:
Saya melakukan ini ke lingkungan python3.6 saya dan mendapatkan kesalahan ini.
Selanjutnya, saya mencoba mengunduh python3.6 dan meletakkan python3.dll di folder dan di berbagai folder. Tidak ada yang berubah.
akhirnya, ini memperbaikinya:
(versi conda-forge lainnya masih diinstal) Ini hanya menyisakan versi conda, dan itu berfungsi di 3.6.
kerja!
sumber