Здається, тут вже є досить багато питань щодо відносного імпорту в python 3, але, пройшовши багато з них, я все одно не знайшов відповіді на своє питання. тому ось питання.
У мене пакет показаний нижче
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
і у мене є один рядок у test.py:
from ..A import foo
тепер я в папці package
, і я біжу
python -m test_A.test
Я отримав повідомлення
"ValueError: attempted relative import beyond top-level package"
але якщо я перебуваю у батьківській папці package
, наприклад, я запускаю:
cd ..
python -m package.test_A.test
все добре.
Тепер моє запитання:
коли я перебуваю в папці package
і запускаю модуль всередині підпакету test_A, оскільки test_A.test
, виходячи з мого розуміння, ..A
піднімається лише на один рівень, який все ще знаходиться в межах package
папки, чому він дає повідомлення про те beyond top-level package
. Яка саме причина викликає це повідомлення про помилку?