Error de importación en VSCode a pesar de configurar PYTHONPATH
Tengo un entorno de flujo de aire implementado localmente en WSL y estoy usando VScode para depurar y codificar.
La estructura de la carpeta de mi aplicación es la siguiente:
~/workspaces
|--- .env
|---organization/gcp/datalake
|--- dags
|--- //My dags
|--- plugins
|--- __init.py__
|--- operators
|--- __init.py__
|--- facebook_operators.py
|--- hooks
|--- __init.py__
|--- facebook_hooks.py
Tengo problemas para comprender el comportamiento de VSCode con respecto a las importaciones.
Agregué las carpetas dagsy pluginsal archivo PYTHONPATHvia .env. Mi VSCode se abre directamente en el workspacesdirectorio.
El problema :
Recibo errores de importación, aunque puedo con éxito go to definitionde la clase que quiero importar.
Ejemplo: en mi facebook_operators.py
from hooks.facebook_hooks import FacebookAdsHook genera el siguiente error:
Sin nombre 'facebook_hooks' en el módulo 'hooks'
El contenido de mi .envarchivo:
PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}
¿Qué hice mal? Me gustaría entender y resolver este error por favor.
Respuestas
Agregue la siguiente declaración al principio del archivo " facebook_operators.py" para ayudar a VSCode a encontrar el archivo que debe importarse:
import os,sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(VSCode busca por defecto el archivo en la carpeta principal del archivo abierto actualmente. Podemos usar la declaración anterior para agregar la ruta del archivo que debe importarse a la ruta del sistema, y luego VSCode puede encontrarla).