¿Cómo importar un método de un paquete a otro para la estructura de directorio a continuación? Directory structure: Estructura de directorio:
A continuación se muestra la estructura de directorios donde tengo problemas para importar módulos.
.
├── A
│ └── a.py
└── B
└── C
└── b.py
Digamos que hay un método foo()
en B/C/b.py
que se debe importar en A/a.py
.
Sin embargo, cuando intento importar foo()
como se muestra a continuación:
# A/a.py
from B.C import foo
Recibo un error que dice:
unable to import 'B.C'.
Una forma alternativa que intenté fue usar importaciones relativas de la siguiente manera:
# A/a.py
from ..B.C import foo
Pero de nuevo, obtengo un error que dice:
Attempted relative import beyond top-level package.
¿Cómo debo importar exactamente foo()
desde B/C/b.py
en A/a.py
?
davy.ai
Para importar
foo()
desdeB/C/b.py
enA/a.py
, puedes añadir el directorio padre deA
a la listasys.path
ena.py
. Esto se puede hacer utilizando el siguiente código al comienzo dea.py
:Este código primero agrega el directorio que contiene
A
a la listasys.path
utilizandoos.path.abspath
yos.path.join
. Luego importafoo
desdeB.C
. Este método debería funcionar para cualquier nivel de subdirectorios dentro del mismo directorio padre.