⚠️ ATENCIÓN ⚠️
Se deben evitar las dependencias circulares.
.py
que contiene funciones, clases o variables reutilizables.import nombre_modulo
from nombre_modulo import objeto
📂 /
│── 📄 modelo.py # Módulo con la clase ModeloIA
└── 📄 main.py # Módulo principal para ejecutar la aplicación
__init__.py
.📂 /
│── 📂 ml/ # Paquete de Machine Learning
│ │── 📄 __init__.py # Indica que es un paquete
│ │── 📄 modelo.py # Módulo con la clase ModeloIA
│ └── 📄 procesador.py # Módulo con la clase ProcesadorDatos
└── 📄 main.py # Módulo principal para ejecutar la aplicación
__init__.py
__init__.py
es un archivo especial que indica que un directorio debe tratarse como un paquete de Python.__init__.py
Importación con __init__.py
Importación sin __init__.py
Se usa .
para importar módulos del mismo paquete.
Se usa el nombre completo para importar módulos de otro paquete.
📂 /
│── 📂 ml/
│ │── 📄 __init__.py
│ └── 📄 modelo.py
└── 📂 data/
│── 📄 __init__.py
└── 📄 procesador.py
¿Y si el código no está en la raíz del proyecto?
📂 /
│── 📂 src/
│ │── 📂 ml/
│ └── 📂 data/
└── 📂 tests/
📂 /
│── 📂 .vscode
│ └── 📄 settings.json
│── 📂 src/
│── 📂 tests/
└── 📄 .env
.env
PYTHONPATH=src
.vscode/settings.json
{
"python.analysis.extraPaths": ["src"]
}
📂 /
│── 📂 .vscode
│ └── 📄 settings.json
│── 📂 src/
│ │── 📂 ml/
│ └── 📂 data/
│── 📂 tests/
└── 📄 .env
Ingeniería del Software para Inteligencia Artificial