Jaki jest najłatwiejszy sposób na usunięcie wszystkich pakietów zainstalowanych przez pip?
Próbuję naprawić jeden z moich virtualenvów - chciałbym zrzucić wszystkie zainstalowane biblioteki z powrotem do odpowiednich dla produkcji.
Czy istnieje szybki i łatwy sposób na zrobienie tego za pomocą pip?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
25 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jeśli masz pakiety zainstalowane przez VCS, musisz wykluczyć te wiersze i ręcznie usunąć pakiety (patrz komentarze poniżej):
Anonimowy użytkownik
Potwierdzenie od:
Metoda 1 (z )
>
Metoda 2 (z )
>
Metoda 3 (z )
>
Anonimowy użytkownik
Potwierdzenie od:
Utwórz plik wymagań o nazwie
reqs.txt
z listą zainstalowanych pakietów
następnie usuń wszystkie pakiety z
reqs.txt
Uwielbiam tę metodę, ponieważ zawsze masz plik wymagań pip, do którego możesz wrócić, jeśli popełnisz błąd. To też się powtarza.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Aby wyświetlić wszystkie pakiety pip w pliku Requirements.txt (Uwaga: spowoduje to nadpisanie pliku Requirements.txt, jeśli istnieje inny, spowoduje utworzenie nowego, a także, jeśli nie chcesz zastępować starego pliku Requirements.txt, to w następna komenda zamiast wymagań .txt).
Teraz posprzątaj jeden po drugim
Jeśli chcemy usunąć wszystko od razu
Jeśli pracujesz nad istniejącym projektem z plikiem , a Twoje środowisko jest inne, po prostu zamień z powyższych przykładów na ... Następnie, postępując zgodnie z powyższymi krokami, możesz użyć pliku , aby zaktualizować swoje czyste środowisko.
I dla pojedynczego polecenia bez tworzenia żadnego pliku (jak sugerował @joeb).
Anonimowy użytkownik
Potwierdzenie od:
Ale zwykle po prostu usuwam i odtwarzam virtualenv, ponieważ niezmienność rządzi!
Anonimowy użytkownik
Potwierdzenie od:
@joeb
https://stackoverflow.com/users/174652/joeb
.
To działało świetnie w przypadku korzystania z czyszczenia mojego folderu niestandardowych pakietów poza kontekstem virtualenv, którego wiele z powyższych odpowiedzi nie obsługuje.
Edycja: czy ktoś wie, jak sprawić, by to polecenie działało w pliku Makefile?
Bonus: alias bash
>
Dla wygody dodaję to do mojego profilu bash:
Następnie uruchomić:
Alternatywa dla pipenv
>
Jeśli używasz
pipenv
https://github.com/pypa/pipenv
możesz po prostu biegać:
Anonimowy użytkownik
Potwierdzenie od:
musi zawierać
w przeciwnym razie usunie również pakiety znajdujące się we wspólnych przestrzeniach nazw.
Oto fragment, którego regularnie używam
Ref:
Anonimowy użytkownik
Potwierdzenie od:
Powinno to wyglądać podobnie jak w przypadku systemów typu Unix:
Tylko ostrzeżenie, że nie jest to całkowicie niezawodne, ponieważ możesz napotkać problemy takie jak „nie znaleziono pliku”, ale mimo to w niektórych przypadkach może działać
EDYCJA: Dla jasności: to dowolny plik, do którego zapisywane są dane po wykonaniu tego polecenia: Ten plik, który z kolei napisał, jest następnie używany do odinstalowania wyżej wymienionych pakietów z niejawną zgodą/uprzednią zgodą za pomocą Po zakończeniu plik jest trwale usuwany.
Anonimowy użytkownik
Potwierdzenie od:
Cm
... dokumentacja
http://virtualenvwrapper.readt ... peenv
wipeenv
Anonimowy użytkownik
Potwierdzenie od:
Następnie usuń wszystko
Anonimowy użytkownik
Potwierdzenie od:
-r, --requirements plik
Usuń wszystkie pakiety wymienione w tym pliku wymagań. Ta opcja może być używana wielokrotnie.
z
wersje dokumentacji
https://pip.pypa.io/en/stable/ ... tall/
pip 8.1
Anonimowy użytkownik
Potwierdzenie od:
Windows PowerShell
Anonimowy użytkownik
Potwierdzenie od:
Odpowiedź @ Blueberryfields działa dobrze, ale kończy się niepowodzeniem, jeśli nie ma pakietu do odinstalowania (co może być problemem, jeśli ta opcja „odinstaluj wszystko” jest częścią skryptu lub pliku makefile). Można to rozwiązać za pomocą podczas korzystania z wersji GNU :
od :
-r, --no-run-if-empty
Jeśli standardowe wejście nie zawiera spacji, nie uruchamiaj polecenia. Zwykle polecenie jest wykonywane raz, nawet jeśli
brak wejścia. Ten parametr jest rozszerzeniem GNU.
Anonimowy użytkownik
Potwierdzenie od:
Może być konieczne wielokrotne uruchomienie tego polecenia, aby uzyskać puste .
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
wieloplatformowy
praca i praca w pipenv to także:
przez pipenv:
ale nie zaktualizuje piplocka ani pipfile, więc bądź świadomy
Anonimowy użytkownik
Potwierdzenie od:
Lub, jeśli użyłeś :
Anonimowy użytkownik
Potwierdzenie od:
na przykład, jeśli twój virtualenv to , uruchomisz:
jeśli nie wiesz, gdzie jest twoje wirtualne env, możesz uruchomić z aktywowanego wirtualnego env, aby uzyskać ścieżkę
Anonimowy użytkownik
Potwierdzenie od:
zespół Shell
z Windows nie zadziała. Więc dla tych z Was, którzy używają Windows, wymyśliłem alternatywny sposób, aby to zrobić.
Anonimowy użytkownik
Potwierdzenie od:
pew wipeenv [env]
Anonimowy użytkownik
Potwierdzenie od:
dla dystrybucji opartych na rpm (zamień python2.7 na wersję Pythona, na której zainstalowałeś pip):
dla dystrybucji opartej na deb:
następnie wyczyść pozostałe puste katalogi:
Uważam, że pierwsza odpowiedź jest bardzo myląca, ponieważ usunie ona wszystkie (większość?) Pakietów Pythona z Twojej dystrybucji i prawdopodobnie pozostawi zepsuty system.