más allá del error de paquete de nivel superior en importación relativa
Parece que ya hay algunas preguntas sobre la importación relativa en Python 3, pero después de analizar muchas de ellas, todavía no encontré la respuesta a mi problema. Así que aquí está la cuestión.
Tengo un paquete que se muestra a continuación
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
y tengo una sola línea en test.py:
from ..A import foo
ahora estoy en la carpeta depackage
y corro
python -m test_A.test
Recibí un mensaje
"ValueError: attempted relative import beyond top-level package"
pero si estoy en la carpeta principal depackage
, por ejemplo, ejecuto:
cd ..
python -m package.test_A.test
todo esta bien.
Ahora mi pregunta es: cuando estoy en la carpeta depackage
, y ejecuto el módulo dentro del subpaquete test_A comotest_A.test
, según mi entendimiento,..A
sube solo un nivel, que todavía está dentro delpackage
carpeta, por qué da mensaje diciendobeyond top-level package
. ¿Cuál es exactamente la razón que causa este mensaje de error?