Saltar a contenido

Creación de Paquetes: Distribuyendo tu Código

Un Paquete es el siguiente nivel de organización en Python. Mientras que un módulo es un archivo simple, un paquete es una colección de módulos agrupados en un directorio que permite una jerarquía lógica y evita conflictos de nombres en proyectos grandes.


1. Requisitos de un Paquete

Para que una carpeta sea considerada un paquete por el intérprete de Python, debe cumplir dos condiciones: 1. Ser un directorio en el sistema de archivos. 2. Contener un archivo llamado __init__.py (aunque sea un archivo vacío).

El rol de __init__.py

Este archivo se ejecuta automáticamente cuando el paquete es importado. Se utiliza para: * Inicializar configuraciones a nivel de paquete. * Controlar qué módulos se exportan al usar from paquete import *. * Simplificar las rutas de importación para el usuario final.


2. Creando un Paquete paso a paso

Imagina que estás creando una librería de procesamiento de imágenes. Tu estructura debería verse así:

  • mi_libreria/ (Carpeta principal)
    • __init__.py (Define que esta carpeta es un paquete)
    • filtros.py (Módulo con funciones de brillo, contraste, etc.)
    • formatos.py (Módulo para manejar JPG, PNG, etc.)

Para usarlo desde un script externo, escribirías: from mi_libreria.filtros import aplicar_brillo


3. Subpaquetes (Paquetes Anidados)

Python permite crear paquetes dentro de otros paquetes. Esto es vital en librerías masivas como Django o Scipy. Simplemente debes repetir la regla: cada carpeta de la jerarquía debe tener su propio archivo __init__.py.


Reto: Arquitectura de Paquetes Lógicos

Vamos a simular la lógica de importación de un paquete de "Finanzas". Tu tarea es importar correctamente los componentes de un paquete imaginario.

Instrucciones:

  1. Desde un paquete llamado finanzas, importa el módulo impuestos.
  2. Desde ese mismo paquete, importa específicamente la función calcular_iva.
  3. Crea una variable llamada total que sea el resultado de llamar a calcular_iva(1000).

# Simula la importación de tu paquete: