2012-02-23 15 views
17

Próbuję usunąć wszystkie zainstalowane pakiety "pirobjc-framework". Próbowałem następujące:Czy istnieje sposób na odinstalowanie wielu pakietów za pomocą pip?

% pip freeze | grep pyobjc-framework | xargs pip uninstall 

ale barfs ponieważ każdy pip odinstalować wymaga potwierdzenia (być może sposób na ominięcie byłoby to rozwiązanie).

Proszę o pomoc, zanim będę musiał rozbić i odinstalować każdy z nich ręcznie! Nikt tego nie chce.

Odpowiedz

29

Twoje polecenie powinno faktycznie działa, jeśli dodać flagę -y | --yes do pip :-)

-y, --yes nie pytaj o potwierdzenie odinstalować delecji.

Ewentualnie:

% pip freeze | grep pyobjc-framework | xargs pip uninstall -y

+0

Bingo. -y jest flagą, której potrzebowałem. Też potrzebuję xargs do przekazania pojedynczego argumentu na raz, więc moje ostatnie polecenie wygląda następująco: '% pip freeze | grep pyobjc-framework | xargs -n 1 sudo pip uninstall -y' Dzięki! – wh1tney

4

Przekieruj wyjście grep do nowego pliku i uruchom.

pip uninstall -r <file name> 

działa, jak sądzę.

pip freeze | grep pyobjc > packages_to_remove.txt 
sudo pip uninstall -y -r packages_to_remove.txt 
+0

er, przykro mi. 'pip freeze | grep pyobjc> packages_to_remove.txt; sudo pip uninstall -y -r packages_to_remove.txt' powinno to zrobić. Zwróć uwagę, że flaga -y musi być pierwsza, jeśli używasz również opcji -r i argument pliku. Doh. – wh1tney

Powiązane problemy