Cześć, próbowałem pakowania Pythona za pomocą setuptools i aby przetestować, zainstalowałem moduł w trybie programowania. to znaczy
python setup.py develop
To dodało mój katalog modułów do sys.path. Teraz chcę usunąć moduł, czy jest jakiś sposób, aby to zrobić?
Z góry dziękuję
python
setuptools
copyninja
źródło
źródło
pip
lub innego menedżera z możliwością deinstalacji do zarządzania pakietami Pythona.python setup.py develop
zpip
?--editable
(lub-e
) argument, który zachowuje się mniej więcej tak samo jak setuptools 'develop
. Wydawało mi się, że może--editable
to nowsza niż Twój komentarz, ale nie - szybkie przeszukanie repozytorium pip na GitHubie ujawnia odniesienia do elementów edytowalnych w commitach z 2009 roku. Co więcej, widzę, że zwracał na to uwagę Tomasz Wysocki, zanim skomentowałeś !Odpowiedzi:
Użyj opcji
--uninstall
lub-u
, abydevelop
np .:Spowoduje to usunięcie go z pliku easy-install.pth i łącze .egg-link. Jedyną rzeczą, której nie robi, jest usuwanie skryptów (jeszcze).
źródło
setup.py
, powinieneś je ręcznie usunąć.--user
opcją tak jak podczas instalacji:python setup.py develop --uninstall --user
rm
lub wdel
zależności od systemu operacyjnego. Chodziło mi o to, że jeśli miałeś jakieś pliki wykonywalne w czasie instalacji, a następnie zmienisz ich nazwy (lub usuniesz je) w swoimsetup.py
, tosetup.py
nie będziesz już o nich wiedział (bez względu na twojąpip
/python
wersję i musisz się nimi zająć zazwyczaj znajdują się w jakimśbin
katalogu na systemach POSIX (czytaj Linuxy, BSD, MacOS X), nie pamiętam o Win.Edytuj plik easy-install.pth w katalogu site-packages i usuń wiersz wskazujący na wersję rozwojową tego pakietu.
źródło
develop --uninstall
nie udało, ponieważ podzieliłem projekt na dwie części, a niewłaściwy pozostał w oryginalnym katalogu.Miałem już wcześniej podobny problem. To, co zrobiłem, to załadowałem powłokę Pythona, zaimportowałem moduł, a następnie wydrukowałem jego
__file__
atrybut. Stamtąd po prostu usunąłbym folder lub plik, który był powiązany.To, na co możesz chcieć zwrócić uwagę, to użycie virtualenv, ten system pozwala na utworzenie instancji języka Python niezależnie od systemu. Wszystkie moduły, które instalujesz lub używasz w tej instancji, są niezależne, łącznie z wersją modułu.
Wszystkie moje projekty trzymam teraz wewnątrz własnego, zawartego w nim virtualenv, który pozwala mi instalować i używać dowolnych modułów bez martwienia się o zepsucie modułów z innych projektów.
źródło