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 package
und 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 package
z. B. befinde , starte ich:
cd ..
python -m package.test_A.test
alles ist gut.
Jetzt ist meine Frage:
Wenn ich mich im Ordner von package
befinde und das Modul innerhalb des Unterpakets test_A ausführe test_A.test
, ..A
steigt nach meinem Verständnis nur eine Ebene nach oben, die sich noch im package
Ordner befindet, weshalb es eine Meldung gibt beyond top-level package
. Was genau ist der Grund für diese Fehlermeldung?