Если вы назовете relative.py
напрямую, и если вы действительно хотите импортировать из модуля верхнего уровня, вы должны явно добавить его в список sys.path
. Вот как это должно работать:
# Add this line to the beginning of relative.py file
import sys
sys.path.append('..')
# Now you can do imports from one directory top cause it is in the sys.path
import parent
# And even like this:
from parent import Parent
Если вы считаете, что приведенное выше может вызвать какую-то несогласованность, вы можете использовать это вместо:
sys.path.append(sys.path[0] + "/..")
sys.path[0]
относится к путь, по которому проходила точка входа.