Es scheint, dass es hier bereits einige Fragen zum relativen Import in Python 3 gibt, aber nachdem ich viele davon durchgesehen habe, habe ich immer noch keine Antwort auf mein Problem gefunden. Also hier ist die Frage.
Ich habe ein Paket unten gezeigt
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
und ich habe eine einzelne Zeile in test.py:
from ..A import foo
Jetzt bin ich im Ordner von packageund laufe
python -m test_A.test
Ich habe eine Nachricht erhalten
"ValueError: attempted relative import beyond top-level package"
aber wenn ich mich im übergeordneten Ordner von packagez. B. befinde , starte ich:
cd ..
python -m package.test_A.test
alles ist gut.
Jetzt ist meine Frage:
Wenn ich mich im Ordner von packagebefinde und das Modul innerhalb des Unterpakets test_A ausführe test_A.test, ..Asteigt nach meinem Verständnis nur eine Ebene nach oben, die sich noch im packageOrdner befindet, weshalb es eine Meldung gibt beyond top-level package. Was genau ist der Grund für diese Fehlermeldung?