Corregir las declaraciones de importación
Ahora, entendamos por qué necesitamos hacer esto. Cuando movemos nuestros archivos al paquete structly
, la forma en que Python busca módulos ha cambiado. Las declaraciones de importación en cada archivo deben actualizarse para coincidir con la nueva estructura del paquete. Esto es crucial porque Python utiliza estas declaraciones de importación para encontrar y utilizar el código de otros módulos.
El archivo structure.py
es muy importante actualizar. Importa funciones y clases del archivo validate.py
. Dado que ambos archivos ahora están en el mismo paquete structly
, tenemos que ajustar la declaración de importación en consecuencia.
Comencemos abriendo el archivo structly/structure.py
en el editor. Puedes hacer clic en structly/structure.py
en el explorador de archivos o ejecutar el siguiente comando en la terminal:
## Click on structly/structure.py in the file explorer or run:
code structly/structure.py
Una vez abierto el archivo, mira la primera línea de la declaración de importación. Actualmente se ve así:
from validate import validate_type, PositiveInteger, PositiveFloat, String
Esta declaración era correcta cuando los archivos tenían una estructura diferente. Pero ahora, necesitamos cambiarla para decirle a Python que busque el módulo validate
dentro del mismo paquete. Entonces, la cambiamos a:
from .validate import validate_type, PositiveInteger, PositiveFloat, String
El punto (.
) antes de validate
es una parte clave aquí. Es una sintaxis especial en Python llamada importación relativa. Le dice a Python que busque el módulo validate
en el mismo paquete que el módulo actual (que es structure.py
en este caso).
Después de hacer este cambio, asegúrate de guardar el archivo. Guardar es importante porque hace que los cambios sean permanentes, y Python utilizará la declaración de importación actualizada cuando ejecutes tu código.
Ahora, revisemos nuestros otros archivos para ver si necesitan alguna actualización.
structly/reader.py
- Este archivo no importa de ninguno de nuestros módulos personalizados. Eso significa que no necesitamos hacer ningún cambio en él.
structly/tableformat.py
- Similar al archivo reader.py
, este también no importa de ninguno de nuestros módulos personalizados. Entonces, tampoco se requieren cambios aquí.
structly/validate.py
- Al igual que los dos archivos anteriores, no importa de ninguno de nuestros módulos personalizados. Por lo tanto, no necesitamos modificarlo.
En la programación del mundo real, tus proyectos pueden tener relaciones más complejas entre módulos. Cuando mueves archivos para crear o modificar una estructura de paquete, siempre recuerda actualizar las declaraciones de importación. Esto asegura que tu código pueda encontrar y utilizar los módulos necesarios correctamente.