IIC2233 / Syllabus-2022-2

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
61 stars 61 forks source link

No puedo importar módulos de directorios anteriores al directorio actual #335

Open cristobalSaravia opened 1 year ago

cristobalSaravia commented 1 year ago

Duda

Hola, tengo un problema importando módulos desde directorios anteriores al directorio donde se encuentra el archivo al cual quiero importar dichos módulos. Por ejemplo, en la actividad formativa 3 se importa el módulo "utils.py" de la carpeta "cliente" en los archivos de la carpeta "cliente/frontend", pero cuando ejecuto el código de cualquiera de los archivos me lanza el error "ModuleNotFoundError: No module named 'utils'". Supongo que esto no debería pasar normalmente siendo que, en el caso de la actividad, este es un archivo que no se debe modificar. Además, al escribir el import, vscode sí encuentra el modulo, apareciendo en color verde, por lo que no sé que podría estar pasando.

Hernan4444 commented 1 year ago

Hola,

Recordemos que los imports se realizan en función de donde se ejecutará el archivo python. En el caso de la AF3, todos los imports están hechos asumiendo que se ejecutará el main.py desde la carpeta cliente y main.py se encargará de hacer imports de los demás archivos. Si uno intenta ejecutar los archivos desde la carpeta "cliente/frontend" con VSCode, por defecto VSCode hará un cd ...../cliente/frontend y luego python3 archivo.py, es decir, está ejecutando los archivos desde la carpeta "frontend" que no es la asumida inicialmente.

Lo esperado que uno haga cd .../cliente y luego python3 main.py con eso todos los imports funcionarán como corresponden. Con eso, los import de "utils.py" para los archivos de la carpeta "cliente/frontend" funcionarán porque en la carpeta cliente (desde donde ejecutaste main.py) efectivamente tiene tambien a "utils.py".

Ojalá esta explicación ayude un poco más a entender el tema de los imports, Saludosヾ(^-^)ノ