2012-02-23 12 views
17

Estoy intentando eliminar todos los paquetes preinstalados "pyobjc-framework". He intentado lo siguiente:¿Hay alguna forma de desinstalar varios paquetes con pip?

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

pero esto barfs debido a que cada pip desinstalación requiere confirmación (tal vez una manera de evitar que sería una solución de esto).

Por favor ayuda antes de tener que romper y desinstalar manualmente cada uno de estos! Nadie quiere eso.

Respuesta

29

su comando en realidad debería funcionar si se agrega la bandera -y | --yes a pip :-)

-y, --yes no piden confirmación de las eliminaciones de desinstalación.

Posiblemente:

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

+0

Bingo. -y es la bandera que necesitaba. También necesito xargs para pasar un solo argumento a la vez, así que mi comando final se ve así: '% pip freeze | grep pyobjc-framework | xargs -n 1 sudo pip uninstall -y' ¡Gracias! – wh1tney

4

redirigir la salida a grep un archivo nuevo y correr.

pip uninstall -r <file name> 

funciona, creo.

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

er, lo siento. 'congelación de pip | grep pyobjc> packages_to_remove.txt; sudo pip uninstall -y -r packages_to_remove.txt' debería hacerlo. Tenga en cuenta que el distintivo -y debe aparecer primero cuando también se utiliza el distintivo -r y un argumento de archivo. Doh. – wh1tney

1

Siempre lo uso:

pip freeze | xargs pip uninstall -y 
Cuestiones relacionadas