Python'un easy_install ile kurulan paketleri nasıl silebilirim?


704

Python's easy_installyeni paketlerin kurulumunu son derece kolay hale getirir. Ancak, anlayabildiğim kadarıyla, bir bağımlılık yöneticisinin diğer ortak özelliklerini uygulamıyor - yüklü paketleri listeleme ve kaldırma.

Neyin yüklü olduğunu bulmanın en iyi yolu nedir ve yüklü paketleri kaldırmanın tercih edilen yolu nedir? Paketleri manuel olarak kaldırırsam güncellenmesi gereken dosyalar var mı (örneğin rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.eggveya benzeri)?


67
Bu yazı, bu yorumu yazdığım sırada neredeyse 2 yaşında. pip artık easy_install için etkili bir alternatiftir ve ikincisi tarafından kurulan paketleri (yumurta dahil) düzgün ve temiz bir şekilde çıkarabilir. Lütfen cevabı daha fazla önererek konuyu aşağı doğru çevirdiğinizden emin olun.
Michael Ekoka

53
Denen bir şey olduğunu oksimoron "easy_install" değil - a bir muadili var easy_uninstall, ne de b: bir bunu nasıl söz zahmet --help- fikrimi hayale sığmaz / kalbimi üzer / Ruhumu _infuriates .
Alex Gray

13
@ pip kaldırmaya çalışıyorsam ne yapmalıyım? (:
mccc

Yanıtlar:


621

setuptools / easy_install komutuna alternatif olan pip , bir "uninstall" komutu sağlar.

Boruyu kurulum talimatlarına göre kurun :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

Ardından, aşağıdakileri pip uninstalliçeren paketleri kaldırmak için kullanabilirsiniz:easy_install


25
pip ile modülleri kaldırmayla ilgili sorun yaşıyorsanız pip kurulumunuzun güncel olduğundan emin olun: pip install -U pip # bu bir büyük harf U
Michael Ekoka 15:11

4
pip, easy_install kurulu paketini kaldırmam için çalıştı. Yine de, paketin tüm sürümlerini kaldırmak için 'pip uninstall <package>' ı birkaç kez çalıştırmak zorunda kaldım. Bunu aklınızda bulundurun. Hatta bir 'geliştirme' yüklü paketi çıkardı, bu da sonuç olarak biraz karışıklık yarattı.
DragonFax

2
Ancak aktif olmayan paketi nasıl silebilirsiniz
CrazyGeek

7
Easy_install yüklemelerini kaldırmak için pip yüklemek için easy_install kullandım.

2
Cevap "pip kur" diyor, ama aslında pip modern Python ile birlikte geliyor gibi görünüyor .
Edward

188

Bir yumurtayı kaldırmak için yumurtaya .eggihtiyacınız var rm -rf(bir dizin olabilir) ve eşleşen satırısite-packages/easy-install.pth


18
Yeni pippaket yöneticisi bir kaldırma özelliği içerir.
joeforker

Pip'i kaldırmaktan daha iyi buluyorum, çünkü pip kaynaklardan geliyor. Eğer benim gibi yepyeni bir Win7 64bit, günlerini kurtaracak :)
daitangio

6
Bazı kullanımları kaldırma seçeneği olmayan eski bir pip sürümü ile sıkışmış, bu yüzden bu cevabın hala değeri var.
Mark Pitchless

5
Muhtemelen bu yöntemin sistemde başıboş data_filesve scripts(ve muhtemelen diğer dosya kategorileri) bırakabileceğini belirtmek gerekir . Yumurta EGG-INFO/SOURCES.txt, tüm packagedosyaların bir listesini içerir ve sourcesancak data_files, sisteminizdeki herhangi bir rastgele dizine yüklenebilecek ...
Alex Leach

pip her zaman easy_install kurulumlarının hepsini kaldırmaz. İşte pip'in modüllerimden birini kaldıramadığı yerde olan küçük bir deneyim . Tamamen kaldırmak için eşleşen paketleri site paketlerinden / easy-install.pth dosyasından kaldırmak zorunda kaldım.
ychaouche

158

Öncelikle bu komutu çalıştırmalısınız:

$ easy_install -m [PACKAGE]

Paketin tüm bağımlılıklarını kaldırır.

Sonra bu paketin yumurta dosyasını kaldırın:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

1
daha fazla doktor burada: peak.telecommunity.com/DevCenter/…
GiDo

-manlatabildiğim kadarıyla bir şeyi kaldırmak için uygun easy_install komutu değil, ancak bu cevap diğer cevapların yapmadığı easy_install paketlerinin önemli konumunu verir. Bir rm -rf /usr/local/lib/python*pip yüklemeden önce bunu gitmek için yol bana görünüyor olduğunu
fuzzyTew

55

Tüm bilgiler diğer yanıtlardadır, ancak hiçbiri hem isteklerinizi özetlemez hem de işleri gereksiz yere karmaşık hale getirir gibi görünür:

  • Kaldırma ihtiyaçlarınız için şunları kullanın:

    pip uninstall <package>

    (kullanarak yükle easy_install pip)

  • 'Kurulu paketleri listele' ihtiyaçlarınız için aşağıdakileri kullanın:

    pip freeze

    Veya:

    yolk -l

    hangi daha paket ayrıntıları çıktı olabilir.

    ( easy_install yolkVeya ile yükleyin pip install yolk)


yolk -lÇalıştırdıktan sonra , "scipy -0.11.0 -non-active development" ve "scipy -0.14.0 ... -active development" gibi yinelenen paketlerim olduğunu görüyorum. Bu etkin olmayan geliştirme paketlerini nasıl kaldırabilirim?
bobbyjoe93

2
Ben easy_install tarafından yüklenen pip kaldırmak istiyorum dışında bu iyidir. Bunun nedeni, yanlış Python sürümü için yüklemesinin sonuçlanmasıdır.
Nagev

28

Net üzerinde -m seçeneği ile paketi yeniden yükleyerek ve sonra sadece lib / .egg dosyasını ve / / binary ikili dosyaları kaldırarak bir kesmek öneren birkaç kaynak vardır . Ayrıca, bu setuptools sorunu hakkında tartışma setuptools sorunu 21 olarak python hata izleyicisi'nde bulunabilir .

Düzenle: Bağlantıyı python hata takipçisine ekledi.


2
Bu bilgi için teşekkürler. Başkalarının referansı için, bahsettiğiniz sorunun bağlantısı: bugs.python.org/setuptools/issue21
ire_and_curses

25

Sorun sizin için yeterince ciddi bir sıkıntıysa, virtualenv'i düşünebilirsiniz . Python kitaplıklarını kapsayan bir ortam oluşturmanıza olanak tanır. Paketleri genel site paketleri dizinine değil, oraya yüklersiniz. Bu ortamda çalıştırdığınız tüm komut dosyalarının bu paketlere (ve isteğe bağlı olarak genel paketlerinize) erişimi de vardır. Global olarak kurmak istediğim / ihtiyaç duyduğumdan emin olmadığım paketleri değerlendirirken bunu çok kullanıyorum. Pakete ihtiyacınız olmadığına karar verirseniz, bu sanal ortamı havaya uçuracak kadar kolaydır. Kullanımı oldukça kolay. Yeni bir env yapın:

$>virtualenv /path/to/your/new/ENV

virtual_envt kurulum araçlarını sizin için yeni ortama yükler, böylece şunları yapabilirsiniz:

$>ENV/bin/easy_install

Yeni ortamınızı ayarlayan kendi boostrap komut dosyalarınızı bile oluşturabilirsiniz. Yani, bir komutla, varsayılan olarak yüklü python 2.6, psycopg2 ve django ile yeni bir sanal env oluşturabilirsiniz (isterseniz python'un env'ye özgü bir sürümünü yükleyebilirsiniz).


$> Nedir? Bu bir istem mi? Belki $ düzeltmek daha yararlı olur? Teşekkürler
Gri

19

Resmi (?) Talimatlar: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstal-packages

Bir paketi başka bir sürümle değiştirdiyseniz, yalnızca PackageName-versioninfo.egg dosyasını veya kurulum dizininde bulunan dizini silerek ihtiyacınız olmayan paketleri silebilirsiniz.

Bir paketin şu anda yüklü sürümünü (veya bir paketin tüm sürümlerini) silmek istiyorsanız, önce şunu çalıştırmalısınız:

easy_install -mxN PackageName

Bu, Python'un kaldırmayı planladığınız bir paketi aramaya devam etmemesini sağlayacaktır. Bunu yaptıktan sonra, kaldırmak istediğiniz komut dosyalarıyla birlikte .egg dosyalarını veya dizinlerini güvenle silebilirsiniz.


Bazı şeyler asla değişmez gibi görünüyor! PIP bir TRAC kesmek eklentisi (trac admin) yüklemeyi reddetti, sadece easy_install çalışıyor. Ama yanlışlıkla eski bir versiyon yükledim. Ve easy_install, proje için https url'sinden bunu düzeltemedi. Bu yüzden kaldırmak için PIP kullandım, ancak yeniden yükledikten sonra TRAC eklentiyi görmüyor. Bu yüzden pkg'ı izole etmek ve manuel olarak silmek, sonra yeniden yüklemek için buradaki bilgileri kullanıyorum. vay. (python 2.7)
Richard Cooke


7

Yüklü Python paketlerini listelemek için kullanabilirsiniz yolk -l. easy_install yolkİlk önce kullanmanız gerekecek .


6

Zamanla kurulan birçok rastgele Python paketini kaldırmaya çalışırken bu soruya rastladım.

Bu konudaki bilgileri kullanarak, bu ile geldi:

cat package_list | xargs -n1 sudo pip uninstall -y

package_listA (awk) temizlenirpip freeze bir virtualenv.

Hemen hemen tüm Python paketlerini kaldırmak için :

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

<package_list xargs -n1 sudo pip uninstall -yUUOC'dan kaçınır!
Heini Høgnason

3

MacOS X Leopard 10.6.blah'ımda da aynı problemle karşılaştım.

Çözüm, MacPorts Python'u aradığınızdan emin olmaktır:

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

Bu yardımcı olur umarım.


1
Ancak, MacPorts'tan tamamen Brew'e, mac'tan yerel python 2.7'ye geçtim. MySQLdb, setup_tools aracılığıyla yüklendi
Cmag

3

Benim için sadece bu dosyayı silmek: easy-install.pth çalıştı, dinlenme pip install django == 1.3.7


1

Bu benim için çalıştı. Önceki yanıtlara benzer, ancak paketlerin yolu farklıdır.

  1. sudo easy_install -m
  2. sudo rm -rf / Kitaplık / Python/2.7/site-packages/.egg

Plaform: MacOS High Sierra sürüm 10.13.3


1
ilk komut benim için bu hatayı üretir:error: No urls, filenames, or requirements specified (see --help)
Michael
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.