Módulos, paquetes e imports en Python: arquitectura desde el inicio

Aprende a organizar proyectos Python en módulos y paquetes, usar imports correctamente y evitar ciclos o acoplamiento innecesario.

Un módulo es un archivo `.py` con código reutilizable; un paquete es una carpeta que agrupa módulos relacionados.

Organizar por módulos reduce archivos monolíticos y facilita pruebas, mantenimiento y trabajo en equipo.

El sistema de imports de Python resuelve rutas según contexto de ejecución, por lo que estructura y punto de entrada importan.

Importar correctamente evita duplicación y dependencias circulares difíciles de depurar.

  • Cada módulo debe agrupar una responsabilidad coherente.
  • Si tienes funciones de validación, cálculo y persistencia en un solo archivo, el acoplamiento crece muy rápido.
  • Separar por módulos (`validators.py`, `services.py`, `repository.py`) hace explícita la arquitectura.
  • No se trata de crear muchos archivos porque sí, sino de mantener cohesión interna alta y dependencias claras.
  • Un paquete agrupa módulos del mismo dominio y define fronteras lógicas.

1) Módulo: unidad mínima de organización

Cada módulo debe agrupar una responsabilidad coherente.

Si tienes funciones de validación, cálculo y persistencia en un solo archivo, el acoplamiento crece muy rápido.

Separar por módulos (`validators.py`, `services.py`, `repository.py`) hace explícita la arquitectura.

No se trata de crear muchos archivos porque sí, sino de mantener cohesión interna alta y dependencias claras.

2) Paquetes y jerarquía de proyecto

Un paquete agrupa módulos del mismo dominio y define fronteras lógicas.

Estructuras típicas incluyen carpeta `app/` con submódulos por dominio: `users/`, `billing/`, `shared/`.

Evita importar desde capas inferiores hacia superiores de forma caótica; define dirección de dependencias.

Una jerarquía limpia permite que nuevos miembros entiendan el proyecto sin leer todo el código.

3) Buenas prácticas de imports

Importar bien es una decisión de mantenibilidad, no solo de estilo.

Agrupa imports en tres bloques: estándar, terceros y módulos propios del proyecto.

Evita `from modulo import *`: contamina namespace y complica trazabilidad de símbolos.

Si detectas import circular, probablemente hay diseño de capas acoplado: extrae contratos o mueve responsabilidades.

  • Prefiere imports explícitos y trazables.
  • Mantén dependencias en una sola dirección entre capas.
  • Centraliza utilidades transversales en módulos compartidos.
  • Documenta entrypoint principal (`main.py`, `cli.py`, etc.).
Python
10

Módulos, paquetes e imports en Python: arquitectura desde el inicio

Aprende a organizar proyectos Python en módulos y paquetes, usar imports correctamente y evitar ciclos o acoplamiento innecesario.

Código del tema: Automatizacion y codigo legible en Python

📘 Teoría

1) Módulo: unidad mínima de organización

Cada módulo debe agrupar una responsabilidad coherente.

1

Si tienes funciones de validación, cálculo y persistencia en un solo archivo, el acoplamiento crece muy rápido.

2

Separar por módulos (`validators.py`, `services.py`, `repository.py`) hace explícita la arquitectura.

3

No se trata de crear muchos archivos porque sí, sino de mantener cohesión interna alta y dependencias claras.

2) Paquetes y jerarquía de proyecto

Un paquete agrupa módulos del mismo dominio y define fronteras lógicas.

Estructuras típicas incluyen carpeta `app/` con submódulos por dominio: `users/`, `billing/`, `shared/`.

Evita importar desde capas inferiores hacia superiores de forma caótica; define dirección de dependencias.

Una jerarquía limpia permite que nuevos miembros entiendan el proyecto sin leer todo el código.

1

Estructura orientativa

Ejemplo de organización mínima escalable.

2

Import absoluto recomendado

Más legible en proyectos medianos/grandes.

3) Buenas prácticas de imports

Importar bien es una decisión de mantenibilidad, no solo de estilo.

Agrupa imports en tres bloques: estándar, terceros y módulos propios del proyecto.

Evita `from modulo import *`: contamina namespace y complica trazabilidad de símbolos.

Si detectas import circular, probablemente hay diseño de capas acoplado: extrae contratos o mueve responsabilidades.

  • Prefiere imports explícitos y trazables.
  • Mantén dependencias en una sola dirección entre capas.
  • Centraliza utilidades transversales en módulos compartidos.
  • Documenta entrypoint principal (`main.py`, `cli.py`, etc.).

🧪 Aprende probando

Ejemplo Ejemplo: importar módulo y usar API explícita Uso correcto de `import math` para mantener contexto del origen de funciones.

🏁 Retos

Reto Reto: corrige import y llamada Repara un código que usa `sqrt` sin importar su módulo origen.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Python.

Test de Python

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com