Düzenlenebilir paketler pip ile nasıl kaldırılır (-e ile yüklenir)


107

-E ile bazı paketler kurdum

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev

Ben pip donma ile görüyorum

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...

paketleri kaldırmaya çalıştığımda hata alıyorum:

> pip uninstall horus-dev
Cannot uninstall requirement horus-dev, not installed

> pip uninstall horus
Cannot uninstall requirement horus, not installed

Böyle bir paketi nasıl kaldırırım?


pip uninstall <package>, pip'in son sürümlerinde düzenlenebilir modda yüklenen paketleri kaldırır (benimki 19.1.1'dir). Bu paketi entry_points içinde çağırmak için belirttiğiniz takma adı değil, setup.py'de paket adını kullandığınızdan emin olun
picmate 涅

conda kullanan kişiler için, conda'da geliştirme modunda kaldırmak için şunları yapın:conda develop -u .
Charlie Parker

Neden pip uninstall yourpackageişe yaramadığını anladın mı? Hataların ne anlama geliyor? Komuttan tuhaf çıktı ...
Charlie Parker

Denediniz mi pip uninstall -e .yoksa python setup.py develop -u?
Charlie Parker

2
Benim için pip uninstall librarygayet iyi çalıştı. OP'nin sağladığı cevaba giderseniz, kütüphanesinin bozuk olması garip bir şey gibi görünüyor. Umarım bu, bir dahaki sefere buraya geldiklerinde insanları kurtarır. Yine de, işe yarayabilecek birçok farklı seçenek var.
Charlie Parker

Yanıtlar:


90

At {virtualenv}/lib/python2.7/site-packages/(virtualenv kullanmıyorsanız o zaman {system_dir}/lib/python2.7/dist-packages/)

  • distribute-0.6.34-py2.7.eggvarsa yumurta dosyasını (örn. ) çıkarın
  • dosyadan easy-install.pth, karşılık gelen satırı kaldırın (kaynak dizine veya yumurta dosyasına giden bir yol olmalıdır).

43
Bunun için karşılık gelen bir kaldırma yolu olmaması şaşırtıcı.
Drake Guan

4
@Drake evet, aslında oldukça can sıkıcı
Glarrain

4
Mevcut pip sürümüyle kaldırma, -eseçenekle kurulan paketler için de sorunsuz çalışıyor .
Famousgarkin

9
benim için 8.1.2 kullanıyor, pip uninstall package_nameçalışıyor ama pip uninstall .çalışmıyor
confused00

5
Düzenlenebilir yüklenen paketleri kaldırma yeteneği için burada pip'e karşı açık bir sorun var .
Chris Hunt

22

Setup_tools'un yeni sürümüyle aynısını yapmanın daha kolay bir yolu, aşağıdakileri çalıştırmaktır:

python setup.py develop -u

Temelde @glarrain'in cevabında tanımladığı şeyle aynı şeyi yapıyor.


2
bu komuta herhangi bir çıktı olması gerekiyor mu? Anlıyorum diyor running developama hala .egg-infodosya bende ... onu kaldırması mı gerekiyor?
Pinokyo

Bu cevabın işe yaradığı "setup_tools'un yeni sürümü" nedir? Lütfen bunu onaylar mısınız?
Charlie Parker

Cevabınız, inceliklerin manuel olarak kaldırılmasına gerek olmadığını garanti ediyor mu?
Charlie Parker

Herhangi bir çıktı üretmez. Anladığıma göre, onu kaldırmalı: "--uninstall, -u Geçerli projeyi dağıtmayı kaldır. Hazırlama alanını belirlemek için --install-dir veya -d seçeneğini kullanabilirsiniz. Oluşturulan .egg-link dosyası varsa kaldırılabilir ve hala proje dizinine işaret ediyor. " dan Setuptools docs . Bunu çalıştırdıktan sonra, içeriği hala geliştirme dizininden yüklüyor mu?
Ahmed Shariff

@CharlieParker Bunun hangi sürümde tanıtıldığından emin değilim. Bu dosyaları asla manuel olarak kaldırmak zorunda kalmadım.
Ahmed Shariff

10

Bir geliştirme paketi kurun cmd kullanın:

pip install --editable .

Kaldır:

rm -r $(find . -name '*.egg-info')

Şimdi kullanabilirsiniz:

pip uninstall package_name 

veya python setup.py develop --uninstallveyapython setup.py develop -u


4
O ikinci komutu nereden çalıştırdığınızı lütfen belirtebilir misiniz?
ethanabrooks

1
@ethanabrooks .geçerli dizindir, paketin tam mutlak yolunu kullanırsınız.
Legolas Bloom

1
Eksik. Peki ya tüm Python paketleri? ( site-packagesyön)
Jorge Orpinel

Bu, yüklemeyi tamamen geri almaz. Paketin yüklendiği klasördeki öğeleri siler, ancak dist-packagesdizininizdeki sembolik bağlantıyı silmez (Python kurulu paketi arar). Temizleyici kullanmak python setup.py develop -u.
Mark Amery

@MarkAmery Teşekkürler, pip uninstall package_nameşimdi çalışın.
Legolas Bloom

6

Bu, işletim sistemi yüklü pip (benim için v8.1.1) kullanan debian / ubuntu linux'ta bir hatadır, pip'i sudo pipyükseltmiş olsanız bile (ör. Get-pip.py) bunu çağıracaksınız . Bkz. Https://github.com/pypa/pip/issues/4438

Nasıl temizleneceğine ilişkin bir tartışma için bkz. Https://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip , ancak "her şeyi kaldır" çeşidi.

... pip paketleri [git] /usr/local/lib/python2.7/dist-packagesve uygun paketleri/usr/lib/python2.7/dist-packages

... birkaç paket de kuruldu ~/.local/lib.

Sistemim için kaldırmam gereken tek şey /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link


Benim için pip uninstall librarygayet iyi çalıştı. OP'nin sağladığı cevaba giderseniz, kütüphanesinin bozuk olması garip bir şey gibi görünüyor. Umarım bu, bir dahaki sefere buraya geldiklerinde insanları kurtarır. Yine de işe yarayabilecek birçok farklı seçenek var
Charlie Parker

5

Kurulumumun bir şekilde bozuk olduğu ortaya çıktı.

Girişi şurada bulabilirim:

/usr/local/lib/python2.7/site-packages/easy-install.pth

Sorunu çözmek için .pth dosyasındaki satırı elle kaldırdım!

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...

1
Kurulumunuzun bozuk olması ne anlama geliyor?
Charlie Parker

-1

'Düzenlenebilir' modda kurduğunuz paketi kaldırmanız yeterlidir:

pip uninstall yourpackage

9
OP bunu denedi ve sorusunda öyle söylüyor. Bu, 'düzenlenebilir' olarak yüklenen paketlerde mutlaka çalışmaz
dusktreader

2
@dusktreader: OP'nin pip uninstallkomutunda neler olup bittiğinden emin değilim (belki eski bir pip sürümü olabilir mi?), ancak normal şartlar altında @glarrain tarafından kabul edilen cevapta manuel olarak yapılması önerilen şeyi tam olarak yaptığını doğruladım. Sizin için işe yaramazsa, sorunu daha ayrıntılı inceleyebilmemiz için lütfen burada ne yaptığınızı ayrıntılı olarak belirtin.
Apteryx

@Apteryx bekle bunun düzenlenebilir mod için bile çalıştığını mı söylüyorsunuz?
Charlie Parker

Bu cevap benim için çalıştı. Bence OP için işe yaramadı çünkü cevabını kontrol ederseniz bazı garip bozuk kurulumlar vardı (veya bilgisayarı garip bir durumda idi). pip uninstall pkgafaik çalışıyor.
Charlie Parker
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.