Geliştirme modunda yüklü olan python modülünü kaldırma


93

Merhaba, setuptools kullanarak python paketlemeyi deniyordum ve test etmek için modülü geliştirme modunda kurdum. yani

python setup.py develop

Bu, modüller dizinimi sys.path'e ekledi. Şimdi modülü çıkarmak istiyorum bunu yapmanın bir yolu var mı?

Şimdiden teşekkürler


4
pipPython paketlerini yönetmek için kaldırma özelliğine sahip başka bir yönetici kullanmaya başlayın .
Tomasz Wysocki

1
@Tomasz python setup.py developile eşdeğerini nasıl yaparsınız pip?
akaihola

7
pip install -e.
Tomasz Wysocki

11
Bu soruya 'pip' doğru cevap değil. Çalıştırmak veya kullanmak için 'pip' kullanarak geliştirdiğiniz bir projeyi kurmak, kaynak kodunu her değiştirdiğinizde yeniden yüklemeniz gerektiği anlamına gelir. Doğru yol, orijinal soruda belirtildiği gibi 'setup.py geliştirmeyi' kullanmaktır.
Jonathan Hartley

6
@JonathanHartley Bu sadece yanlış; pip, kurulum araçlarına kabaca eşdeğer davranan bir --editable(veya -e) argümana sahiptir . Bunun belki sizin yorumunuzdan daha yeni olduğunu düşünmüştüm , ama hayır - GitHub'daki pip deposunun hızlı bir şekilde aranması, 2009'daki kayıtlarda düzenlenebilir öğelere yapılan referansları ortaya çıkarıyor. ! develop--editable
Mark Amery

Yanıtlar:


225

Aşağıdakileri yapmak için --uninstallveya -useçeneğini kullanın develop:

python setup.py develop --uninstall

Bu, onu easy-install.pth dosyasından kaldıracak ve .egg-bağlantısını silecektir. Yapmadığı tek şey komut dosyalarını silmektir (henüz).


3
Geliştirme sürümünüz bazı çalıştırılabilir dosyalar yüklediyse ve bunları sizde değiştirdiyseniz, bunları setup.pymanuel olarak kaldırmanız gerektiğini unutmayın .
norok2

1
Açıklandığı gibi çalıştırıyorum, çıktıda hata yok, yine de geliştirme paketimi global olarak içe aktarabiliyorum, görünüşe göre kaldırılmamış. DÜZENLEME: Nedenini biliyorum --user, kurulum sırasında yaptığım gibi seçenekle çalıştırmak zorunda kaldım :python setup.py develop --uninstall --user
Marek

Modülün adını değiştirirken (örneğin) işler değişebileceğinden bunun güvenli olduğunu düşünmüyorum. Her şeyi manuel olarak kaldırmanız gerekir.
mathtick

@ norok2 Bu çalıştırılabilir dosyaları kaldırmak için çalıştırılması gereken manuel komutlar nelerdir? Bildiğim kadarıyla yukarıdakilerin belirli python / pip sürümleri için çalıştığını biliyorum, ancak hangileri olduğundan emin değilim.
Charlie Parker

1
@CharlieParker rmveya delişletim sisteminize bağlı olarak. Demek sen Gözlerinde farklı (veya bunları kaldırmak) yüklediğiniz ve ardından adlarını değiştirmek anda bazı yürütülebilir olsaydı yani setup.py, o zaman setup.pyartık herhangi (hayır senin önemli onlar hakkında bilemezsiniz pip/ pythonversiyonunu ve bunlardan bakmak gerek Genellikle binPOSIX (Linux, BSD, MacOS X okuma) sistemlerinde bazı dizinlerde bulunurlar, Win hakkında hatırlayamıyorum.
norok2

16

Easy-install.pth dosyasını site paketleri dizininizde düzenleyin ve bu paketin geliştirme sürümüne işaret eden satırı kaldırın.


Evet tam olarak bunu yaptım ve paket-yumurta-bağlantısı adıyla bir dosya daha vardı ve şimdi modüle referans kaldırıldı Teşekkürler :)
copyninja

10
"setup.py development --uninstall" bunu sizin için yapıyor, bkz. @ pjeby'nin yanıtı
Jonathan Hartley

3
Bu, develop --uninstallbaşarısız olduğumda işe yaradı çünkü bir projeyi ikiye böldüm ve yanlış olan orijinal dizinde kaldı.
Wesley Baugh

1

Daha önce buna benzer bir sorun yaşadım. Yaptığım şey, Python kabuğunu yükledim, modülü içe aktardım ve ardından __file__özniteliğini yazdırdım . Oradan sadece ilişkilendirilen klasörü veya dosyayı kaldırırdım.

İncelemek isteyebileceğiniz şey virtualenv kullanmaktır, bu sistem sisteminizden ayrı bir python örneği oluşturmanıza izin verir. Bu örnekte kurduğunuz veya kullandığınız tüm modüller, modülün sürümü de dahil olmak üzere bağımsızdır.

Tüm projelerimi şimdi kendi içerdiği virtualenv'in içinde tutuyorum, bu da diğer projelerden modülleri mahvetme endişesi olmadan istediğim modülleri kurmama ve kullanmama izin veriyor.


Bir dahaki sefere paketlerle oynadığımdan itibaren bunu kullanacağım, böylece Python sistemimi mahvetmeyeceğim. Bilgi için teşekkürler
copyninja
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.