Импорт из родственного каталога

#python #import

#python #импорт

Вопрос:

Я искал этот вопрос через stackoverflow, но не могу найти ответ, который исправляет это. Я пытаюсь научиться выполнять правильный импорт с помощью python.

Я использую Python 3.8.2, и у меня есть следующая простая настройка каталога.

 main_folder
    folder1
        myclass.py
    folder2
        testclass2.py
    testclass1.py
  

Оба testclass1.py и testclass2.py имейте это внутри:

 from folder1.myclass import Myclass
  

Это отлично работает для testclass1.py , но когда я вбегаю в testclass2.py это выдает мне ошибку.

Ошибка ModuleNotFoundError: нет модуля с именем ‘folder1’

Несмотря на то, что я прочитал, что Python больше не требует этого, я вставил __init__.py файл в папку 1. Это привело к той же ошибке. Затем я попытался следовать инструкциям для файла инициализации в этой статье, но улучшения не было. Я также пытался использовать относительные пути по сравнению с абсолютными путями для импорта, но безуспешно.

Помощь очень ценится.

Ответ №1:

Из testclass2.py импорта должно быть так:

 from ..folder1.myclass import Myclass
  

Комментарии:

1. Я пробую это, и результатом является следующая ошибка: ImportError: попытка относительного импорта без известного родительского пакета

2. Вы должны добавить init.py файлы в каждый из каталогов, включая main_folder

3. Спасибо. Но никакой разницы. Кроме того, я понимаю, что инициализация больше не требуется с определенной версии python.