Должно работать следующее:
import sys
from os import path
sys.path.append( path.dirname( path.dirname( path.abspath(__file__) ) ) )
from subPackage1 import fileInSubPackage1
Также есть очень хорошее объяснение того, как обращаться с импортом, которое можно найти здесь
ОБНОВЛЕНИЕ:
Изучив официальную документацию, я понял, что причина относительного сбоя при импорте выше заключается в том, что при использовании from something import somefile
что-то должно быть пакетом или несколькими пакетами.Ниже картинка прояснит это далее:
![given this project structure](https://i.stack.imgur.com/OhCq8.png)
, если у нас есть вышеупомянутая структура проекта, и мы хотим импортировать the_program.py
в file_random.py
, мы должнынапишите from directory_one.package_inside_directory_one import the_program
directory_one и package_inside_directory оба являются пакетами.и from ..package_two_inside_directory_one import the_program
приведет к ValueError: attempted relative import beyond top-level package
Теперь, если структура расширена ниже:
![project structure extended](https://i.stack.imgur.com/aH8Uy.png)
и мы 'находясь в the_program.py и хотим импортировать file_under_Subdirectory.py
и more_tests.py
, мы просто следуем одному и тому же правилу:
from directory_two.package_inside_directory_two import more_tests
from directory_two.package_inside_directory_two.subDirectory_inside_package_two import file_under_Subdirectory