Здається, тут вже є досить багато питань щодо відносного імпорту в 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. Яка саме причина викликає це повідомлення про помилку?