Es scheint, es gibt schon einige Fragen über den relativen Import in Python 3, aber nach vielen durchläuft ich immer noch nicht die Antwort für mein Problem. also hier ist die Frage.über Top-Level-Paket Fehler im relativen Import
Ich habe ein Paket unten gezeigt
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
und ich habe nur eine einzige Zeile in test.py:
from ..A import foo
jetzt, ich bin in dem Ordner von package
, und ich laufe
python -m test_A.test
Ich habe Nachricht
"ValueError: attempted relative import beyond top-level package"
aber wenn ich in den übergeordneten Ordner von package
bin, zum Beispiel, ich laufe:
cd ..
python -m package.test_A.test
alles ist in Ordnung.
jetzt meine Frage ist: wenn ich im Ordner von package
bin, und ich führen Sie das Modul innerhalb des Test_a Unterpaket als test_A.test
, basierend auf meinem Verständnis geht ..A
nur eine Ebene nach oben, die package
innerhalb der nach wie vor ist Ordner, warum gibt es eine Nachricht sagen beyond top-level package
. Was ist genau der Grund, der diese Fehlermeldung verursacht?
möglich Duplikat von [Wie relativ Einfuhren in Python zu tun?] (Http://stackoverflow.com/questions/72852/how-to- Do-Relative-Importe-in-Python) – SimKev2
dieser Beitrag hat nicht mein "jenseits des Top-Level-Pakets" Fehler – shelper
Fehler Ich habe einen Gedanken hier, also, wenn test_A.test als Modul ausgeführt, '..' geht über test_A, die ist bereits die höchste Ebene des Imports test_A.test, ich denke, die Paketstufe ist nicht die Verzeichnisebene, sondern wie viele Ebenen Sie das Paket importieren. – shelper