[Python+Bash] Un muy útil one-liner (chequear dependencias de paquetes con pip)

Estuve peleando con obtener (y desinstalar) dependencias de un proyecto muy “sucio”, algún amigo loco le agregó en requirements desde TensorFlow, pasando por Adal, Google Maps y herramientas geodésicas, creo que iba a fabricar a Skynet.

Terminé con este “one-liner” script que me muestra las dependencias de cada paquete instalado:

for dep in $(pip freeze | cut -d "=" -f1); do echo "Package: $dep :" && pip show $dep | grep Requires | awk -F ":" '$dep {print $2}'; done

¿Qué hace el script?

  • “for ; do ; done” es un iterador de bash
  • toma la lista de paquetes (pip freeze) y la pasa por cut, “cortando” por el primer igual (-d “=”) y retornando el primer objeto de ese cut (-f 1)
  • por cada paquete, entonces hace un “pip show”, lo pasa por “grep” para extraer exclusivamente los requirements (Requires) y luego por un último awk para cortar por el “:” e imprimir exclusivamente los requirements.

Al final, sé que hay paquetes que lo hacen, pero ¿para qué ensuciar mi environment si con bash lo puedo hacer y one-liner?

¡Happy Hacking!

Author: jesuslara

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.