Pip Install ile Kurulmuş Bir Paket Nasıl Kaldırılır - Kullanıcı


219

--userKullanıcı başına bir Python paketi yükleyebilen pip için bir seçenek vardır :

pip install --user [python-package-name]

Kök erişimi olmayan bir sunucuya paket yüklemek için bu seçeneği kullandım. Şimdi ihtiyacım olan şey, yüklü kullanıcıyı geçerli kullanıcıya kaldırmaktır. Bu komutu yürütmeye çalıştım:

pip uninstall --user [python-package-name]

Ama anladım:

no such option: --user

Paketi pip install --userel ile bulmak ve silmek dışında yüklediğim bir paketi nasıl kaldırabilirim ?

Bu makaleyi buldum

pip, kullanıcı başına site paketleri dizininden kaldırılamaz

bu, paketlerin kullanıcı dizininden kaldırılmasının desteklenmediğini açıklar. Makaleye göre doğru uygulanmışsa

pip uninstall [package-name]

yüklenen paket kullanıcı dizinlerinde de aranacaktır. Ama hala benim için bir sorun var. Aynı paket hem sistem çapında hem de kullanıcı başına yüklendiyse ne olur? Birisinin belirli bir kullanıcı dizinini hedeflemesi gerekirse ne olur?


1
Hayır, kullanıcı: grup başına bir sanal reklam ayarlamalı ve onu içeren klasöre uygun sistem izinleri vermelisiniz.
danius

3
Tüm kullanıcılar için sistem çapında bir paket kurmanın ve ardından bazı kullanıcılar için seçmeli olarak kaldırmanın bir yolu yoktur. Paket olarak yüklendiyse, --userolmadan kaldırmak --useristediğinizi yapar.
tripleee

@tripleee: İzin sistemi geniş değil ve istemiyorum, sadece mevcut kullanıcı başına kaldırmak gerekir
Serjik

1
Hangi dizini kaldırma izniniz olmadığını belirleyin ve izinlerini düzeltin veya el ile yana taşıyın.
tripleee

Yanıtlar:


196

Bunu Linux'ta Python 3.5 ve pip 7.1.2 kullanarak test ettikten sonra, durum şöyle görünüyor:

  • pip install --user somepackageyükler $HOME/.localve kaldırmayı kullanarak çalışır pip uninstall somepackage.

  • somepackageAynı zamanda sistem genelinde kurulsun veya kurulmasın , bu doğrudur .

  • Paket her iki yere de kurulursa, yalnızca yerel paket kaldırılır. Paketi sistem genelinde pipkaldırmak için önce yerel olarak kaldırın, ardından aynı kaldırma komutunu rootayrıcalıklarla tekrar çalıştırın .

  • Önceden tanımlı kullanıcı yükleme dizinine ek olarak pip install --target somedir somepackage, paketi içine yükleyecektir somedir. Bu tür bir yerden bir paketi kaldırmanın bir yolu yoktur pip. (Ancak, Github'da uygulayan biraz eski, birleştirilmemiş bir çekme talebi var pip uninstall --target.)

  • pipKaldırılacak tek yerler sistem çapında ve önceden tanımlanmış kullanıcı yerel olduğundan, pip uninstallbelirli bir kullanıcının yerel yükleme dizininden kaldırmak için ilgili kullanıcı olarak çalıştırmanız gerekir .


2
Bu ifadeler pip'i sanal bir ortamda çalıştırmak için doğru mu?
kbolino

benim durumumda pip 9.0.1 için kaldırma işe yaramadı paketi hala HOME /./ local
Genom

2
Nokta 2 benim sistemimde doğru görünmüyor. jediYüklü bir sistem paketim var /usr/lib64/python2.7/site-packages/. Yaptığımda, normal bir kullanıcı olarak: pip install --user jedi ve sonra pip uninstall jedi, pip kaldırmaya çalışır /usr/lib64/python2.7/site-packages/jedive sonra ile başlar Permission denied. Yani eğer --userkaldırma komutu için mevcut değil, nasıl kaldırma anlatmak yapmak değil kaldırmaya denemek /usr/lib64/python2.7/site-packages/jediama ~/.local/lib64/python3.6/site-packages/jedi?
AstroFloyd

@AstroFloyd
Nikana Reklawyks ile

28

'oauth2client' paketini MacOS'ta kaldırmak için örnek:

pip uninstall oauth2client

9

Yine de, pip install --user some_pkg sanal bir ortamda kullananlar için dikkatli olun .

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even `pip list` will not properly list the `some_pkg` in this case

Bu durumda, geçerli sanal ortamı devre dışı bırakmanız ve ardından kullanıcı site paketlerini listelemek veya kaldırmak için ilgili python/ pipyürütülebilir dosyayı kullanmanız gerekir :

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

Bu sorunun birkaç yıl önce bildirildiğini unutmayın . Ve şu anki sonuç şudur: sanal bir ortamın --useriçinde geçerli değildir pip, çünkü bir kullanıcı konumu sanal bir ortam için gerçekten mantıklı değildir.


3
Çok geç ! --user, sanal ortamın içinde kullandım , bunu geri almanın bir yolu var mı?pip list çalışmıyor ....
jnfran92

2
`` Ve şu anki sonuç şu ki: - kullanıcı sanal bir env'nin pipinde geçerli değil, çünkü bir kullanıcı konumu sanal bir ortam için gerçekten mantıklı değil. ' Kabul. Kullanıcı, sanal ortamın tüm amacını ortadan kaldırır. Ne yazık ki, bunu yapan insanların birçok kötü örneği var.
Stephen Bosch

5

--userBayrakla yüklenmiş paketleri kaldırmak mümkün olduğunu düşünüyorum . Bu benim için çalıştı;

pip freeze --user | xargs pip uninstall -y

Python 3 için;

pip3 freeze --user | xargs pip3 uninstall -y

Ancak bir şekilde bu komutlar kurulum araçlarını ve pip'i kaldırmaz. Bu komutlardan sonra (gerçekten temiz python istiyorsanız) bunları silebilirsiniz;

pip uninstall setuptools && pip uninstall pip


2
Bu benim için iyi çalışan zarif bir çözüm.
Stephen Bosch

2

Cevap henüz mümkün değil . Manuel olarak kaldırmanız gerekir.


Bir paket kurarken bir geri izleme vardı. Kaldırma bundan sonra hiç çalışmadı.
syam

Belirli bir paket için yüklenen tüm dosyaları nasıl listeleyebilirim (böylece bunları kaldırabilirim)?
AstroFloyd

Etkin bir şekilde imkansızdır, çünkü pip harici kodu çalıştıran setup.py dosyasını çalıştırır. Setup.py tamamen kaldırılıncaya kadar unutun, muhtemelen 2022'ye kadar.
sorin

2

@ Thomas-lotze'nin belirttiği gibi, şu anda pip takımları, karşılık gelen - kullanıcı seçeneği olmadığı için bunu yapmaz. Ama bulduğum şey, ~ / .local / bin'i kontrol edip bana --user seçeneğine karşılık gelen gibi görünen belirli pip #. # 'I arayabileceğim.

Benim durumumda:

antho@noctil: ~/.l/bin$ pwd
/home/antho/.local/bin
antho@noctil: ~/.l/bin$ ls pip*
pip  pip2  pip2.7  pip3  pip3.5

Ve sonra sadece belirli pip sürümü ile kaldırın.


stackoverflow.com/a/11250821/14420 örneğin banyo Kaldırmak, tarifini görmek için ./pip2 freeze | grep -v "^-e" | xargs pip uninstall -ydüzenlenebilir modda yüklenmiş paketler hariç her şey için
mat Wilkie

0

Anaconda sürüm 4.3.22 ve bir python3.6.1 ortamı çalıştırıyorum ve bu sorun vardı. İşte tarih ve düzeltme:

pip uninstall opencv-python # -- the original step. failed.

ImportError: DLL load failed: The specified module could not be found.

Bunu python3.6 ortamımda yaptım ve bu hatayı aldım.

python -m pip install opencv-python # same package as above.
conda install -c conda-forge opencv # separate install parallel to opencv
pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.

Sonra, python3.6 indirmeyi ve python3.dll'yi klasöre ve çeşitli klasörlere koymayı denedim. hiçbirşey değişmedi.

Sonunda, bu düzeltildi:

pip uninstall opencv-python

(diğer conda-forge sürümü hala yüklü) Bu yalnızca conda sürümünü bıraktı ve 3.6'da çalışıyor.

>>>import cv2
>>>

Çalışma!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.