En el día a día es frecuente que llamemos librería a cualquier módulo o paquete disponible. Como Python tiene muchos de ellos y varios son muy conocidos, esta confusión se propaga fácilmente. Veamos en qué consiste cada uno de ellos específicamente.
Módulo
Un módulo es simplemente un archivo de Python (.py), que contiene diferentes funciones, clases o variables. Sí quisiéramos utilizar alguna de las funciones definidas en dicho módulo, necesitamos importarlo en un nuevo archivo en el que estemos trabajando.
Cómo los módulos contienen por lo general bastantes elementos, una buena idea sería importar únicamente las funciones específicas que necesitaremos en lugar de importar el módulo completo.
import random
from random import randint
Algunos de los módulos de Python más famosos son os, random y datetime.
Paquete
Un paquete es algo más complejo que un módulo. De hecho es una colección de módulos, agrupados en directorios que se caracterizan por contener un archivo llamado __init__.py. Este archivo __init__.py es precisamente el que permite convertir un directorio normal en un paquete de Python, ya que es quien configura la importación.
Los paquetes se vuelven necesarios cuando la cantidad de archivos Python se incrementa, y pueden ser importados directamente como paquete o acceder módulos específicos utilizando una notación de puntos:
import paquete.subpaquete.modulo1
Algunos de los paquetes más famosos en Python son pandas y numpy.
Librería
A menudo este término se usa de manera intercambiable con “paquete”, porque ambos pueden contener módulos u otros paquetes. Dicho esto, una librería generalmente es conocida como una colección de paquetes, construida para facilitar la transversalización (compartición) de código con la comunidad para no tener que volver a inventar la rueda en cada nuevo proyecto.
Algunas librerías conocidas son requests, matplotlib y beautiful soup.
Framework
Un framework es algo similar a una librería, pero tú incorpora un flujo de trabajo y una arquitectura específica para el desarrollo de una aplicación, que sirve a modo de esqueleto, constituyendo los bloques básicos sobre los cuales la misma se desarrollará luego. Los frameworks ayudan a crear aplicaciones complejas de manera rápida y bien estructuradas con menos código. Pero para eso es necesario seguir una serie de lineamientos básicos.
Los ejemplos más conocidos de frameworks para Python son Django y Flask.