Sembra che ci siano già alcune domande sull'importazione relativa in Python 3, ma dopo averne esaminate molte non ho ancora trovato la risposta al mio problema. quindi ecco la domanda.
Ho un pacchetto mostrato di seguito
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
e ho una sola riga in test.py:
from ..A import foo
ora sono nella cartella di package
e corro
python -m test_A.test
Ho ricevuto un messaggio
"ValueError: attempted relative import beyond top-level package"
ma se mi trovo nella cartella padre di package
, ad esempio, corro:
cd ..
python -m package.test_A.test
va tutto bene.
Ora la mia domanda è:
quando mi trovo nella cartella di package
, ed eseguo il modulo all'interno del sotto-pacchetto test_A poiché test_A.test
, in base alla mia comprensione, ..A
sale solo un livello, che è ancora all'interno della package
cartella, perché dà un messaggio beyond top-level package
. Qual è esattamente il motivo che causa questo messaggio di errore?