Paquetes y módulos

Python
Python
Actualizado: 30/06/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Paquetes y módulos en Python

La modularización es uno de los pilares fundamentales del desarrollo profesional en Python. A medida que los proyectos crecen en complejidad, la capacidad de organizar el código en unidades lógicas y reutilizables se convierte en una habilidad esencial para cualquier programador.

Python ofrece un sistema robusto de módulos y paquetes que permite estructurar aplicaciones de manera escalable y mantenible. Este enfoque no solo mejora la legibilidad del código, sino que también facilita la colaboración en equipos de desarrollo y la reutilización de componentes entre diferentes proyectos.

¿Qué son los módulos?

Un módulo en Python es simplemente un archivo que contiene código Python ejecutable. Puede incluir definiciones de funciones, clases, variables y declaraciones ejecutables. El nombre del módulo corresponde al nombre del archivo sin la extensión .py.

Cuando creamos un archivo llamado calculadora.py, automáticamente estamos creando un módulo llamado calculadora:

# calculadora.py
def sumar(a, b):
    """Suma dos números y devuelve el resultado."""
    return a + b

def restar(a, b):
    """Resta dos números y devuelve el resultado."""
    return a - b

PI = 3.14159

Este módulo puede ser importado y utilizado en otros archivos Python, permitiendo acceder a sus funciones y variables desde cualquier parte de nuestro proyecto.

Importación de módulos

Python proporciona varias formas de importar módulos, cada una con sus propias ventajas y casos de uso específicos.

Importación completa del módulo:

import calculadora

resultado = calculadora.sumar(5, 3)
print(f"El valor de PI es: {calculadora.PI}")

Importación de elementos específicos:

from calculadora import sumar, PI

resultado = sumar(10, 5)
print(f"PI = {PI}")

Importación con alias:

import calculadora as calc
from calculadora import sumar as suma

resultado = calc.restar(10, 3)
total = suma(2, 8)

La elección del método de importación depende del contexto y las necesidades específicas del código. La importación completa mantiene el espacio de nombres limpio, mientras que la importación específica puede hacer el código más legible cuando solo necesitamos algunas funciones.

Módulos de la biblioteca estándar

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Python incluye una extensa biblioteca estándar con módulos predefinidos que cubren una amplia gama de funcionalidades. Estos módulos están disponibles sin necesidad de instalación adicional.

import math
import datetime
import random
import os

# Operaciones matemáticas avanzadas
raiz = math.sqrt(16)
seno = math.sin(math.pi / 2)

# Trabajo con fechas
ahora = datetime.datetime.now()
fecha_formateada = ahora.strftime("%Y-%m-%d %H:%M:%S")

# Generación de números aleatorios
numero_aleatorio = random.randint(1, 100)
elemento_aleatorio = random.choice(['python', 'java', 'javascript'])

# Interacción con el sistema operativo
directorio_actual = os.getcwd()
archivos = os.listdir('.')

Estos módulos demuestran la versatilidad de Python y cómo la modularización permite acceder a funcionalidades complejas con una sintaxis simple y clara.

Introducción a los paquetes

Un paquete es una forma de organizar módulos relacionados en una estructura jerárquica de directorios. Los paquetes permiten crear espacios de nombres estructurados que evitan conflictos de nombres y facilitan la organización de proyectos grandes.

La estructura básica de un paquete incluye un archivo especial llamado __init__.py que indica a Python que el directorio debe tratarse como un paquete:

mi_proyecto/
    __init__.py
    modulo1.py
    modulo2.py
    subpaquete/
        __init__.py
        modulo3.py

El archivo __init__.py puede estar vacío o contener código de inicialización del paquete. Este archivo se ejecuta automáticamente cuando se importa el paquete por primera vez.

Creación y uso de paquetes

Crear un paquete implica organizar los módulos en directorios y definir las interfaces públicas que queremos exponer. Consideremos un paquete para operaciones matemáticas:

matematicas/
    __init__.py
    basicas.py
    avanzadas.py
    geometria/
        __init__.py
        figuras.py

Contenido de matematicas/basicas.py:

def sumar(a, b):
    return a + b

def multiplicar(a, b):
    return a * b

Contenido de matematicas/__init__.py:

from .basicas import sumar, multiplicar
from .avanzadas import potencia

__version__ = "1.0.0"
__all__ = ['sumar', 'multiplicar', 'potencia']

Uso del paquete:

import matematicas
from matematicas.geometria import figuras

resultado = matematicas.sumar(5, 3)
area = figuras.area_circulo(10)

La variable __all__ define qué elementos se importan cuando se usa from paquete import *, proporcionando control explícito sobre la interfaz pública del paquete.

Importaciones relativas y absolutas

Python distingue entre importaciones absolutas y relativas, cada una con sus propios casos de uso y mejores prácticas.

Las importaciones absolutas especifican la ruta completa desde la raíz del proyecto:

from matematicas.basicas import sumar
from matematicas.geometria.figuras import area_rectangulo

Las importaciones relativas utilizan puntos para indicar la posición relativa dentro del paquete:

# Desde matematicas/avanzadas.py
from .basicas import sumar  # Mismo nivel
from ..utils import helper  # Nivel superior
from .geometria.figuras import area_circulo  # Subpaquete

Las importaciones relativas solo funcionan dentro de paquetes y proporcionan mayor flexibilidad cuando se reorganiza la estructura del proyecto, ya que no dependen de nombres absolutos de paquetes.

Completa Python y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración