¿La desinstalación de un paquete con “pip” también elimina los paquetes dependientes?

Cuando use pip para instalar un paquete, todos los paquetes requeridos también se instalarán con él (dependencias). ¿La desinstalación de ese paquete también elimina los paquetes dependientes?

No, no desinstala los paquetes de dependencias:

 $ pip install specloud $ pip freeze 

figleaf == 0.6.1
nariz == 1.1.2
pinocho == 0.3
specloud == 0.4.5

 $ pip uninstall specloud $ pip freeze 

figleaf == 0.6.1
nariz == 1.1.2
pinocho == 0.3

Como puede ver, todos los paquetes siguen allí, pero no el paquete specloud sí.

Puede instalar y usar la utilidad pip-autoremove para eliminar un paquete más las dependencias no utilizadas.

 # install pip-autoremove pip install pip-autoremove # remove "somepackage" plus its dependencies: pip-autoremove somepackage -y 

He eliminado exitosamente las dependencias de un paquete usando esta línea bash:

 for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done 

esto funcionó en pip 1.5.4

Puede intentarlo en https://github.com/cls1991/pef . Se eliminará el paquete con todas sus dependencias.