¿La desinstalación de un paquete con "pip" también elimina los paquetes dependientes?
Cuando utiliza pip
para instalar un paquete, todos los paquetes necesarios también se instalarán con él (dependencias). ¿La desinstalación de ese paquete también elimina los paquetes dependientes?
Puede instalar y utilizar 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
No, no desinstala los paquetes de dependencias. Solo elimina el paquete especificado:
$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package
hoja de parra==0.6.1
nariz==1.1.2
pinocho==0.3
nube de nubes==0.4.5
$ pip uninstall specloud
$ pip freeze
hoja de parra==0.6.1
nariz==1.1.2
pinocho==0.3
Como puede ver, esos paquetes son dependencias specloud
y todavía están ahí, pero no el specloud
paquete en sí.
Como se menciona a continuación, puede instalar y usar la utilidad pip-autoremove para eliminar un paquete más las dependencias no utilizadas.
Eliminé con éxito 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
He encontrado la solución aunque a algunos les puede resultar un poco difícil de llevar a cabo.
1er paso (para python3 y linux):
pip3 install pip-autoremove
2do paso:
cd /home/usernamegoeshere/.local/bin/
3er paso:
gedit /home/usernamegoeshere/.local/lib/python3.8/site-packages/pip_autoremove.py
y cambie todos los pip(s) a pip3
4to paso:
./pip-autoremove packagenamegoeshere
Al menos esto fue lo que funcionó para mí...