sembra che ci siano già abbastanza alcune domande qui circa l'importazione relativa a Python 3, ma dopo aver attraversato molti di loro ancora non ha trovato la risposta per il mio problema. quindi ecco la domanda.al di là di alto livello errore pacchetto in importazione relativo
ho un pacchetto illustrato 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 avuto un messaggio
"ValueError: attempted relative import beyond top-level package"
ma se mi trovo in cartella principale di package
, per esempio, corro:
cd ..
python -m package.test_A.test
tutto va bene.
ora la mia domanda è: quando sono nella cartella di package
, e corro il modulo all'interno del sub-package test_A come test_A.test
, in base alla mia comprensione, ..A
va su un solo livello, che è ancora all'interno della package
cartella, perché fornisce un messaggio che dice beyond top-level package
. Qual è esattamente la ragione che causa questo messaggio di errore?
possibile duplicato di [Come fare le importazioni relative a Python?] (Http://stackoverflow.com/questions/72852/how-to- do-relative-imports-in-python) – SimKev2
il post non spiegava il mio errore "oltre il livello superiore" – shelper
Ho un pensiero qui, quindi quando esegui test_A.test come modulo, '..' va sopra test_A, che è già il livello più alto di importazione test_A.test, penso che il livello del pacchetto non sia il livello della directory, ma quanti livelli si importano il pacchetto. – shelper