Python Импорт класса с другого пути - PullRequest
0 голосов
/ 30 января 2020

Каталог файлов

Folder1
    - FolderA
        -FolderAA
            -other.py
            -*.py
            -*.py
            -*.py
    - FolderB
        -myclass.py

Внутри myclass.py я пытаюсь импортировать класс и вызывать функцию внутри other.py.

Это список способов, которые я пытался импортировать.

import FolderA.FolderAA.other as myOther
ModuleNotFoundError: No module named 'FolderA'
import .FolderA.FolderAA.other as myOther
SyntaxError: invalid syntax

1 Ответ

2 голосов
/ 30 января 2020

Здесь похоже, что все расплывчато в одном и том же месте (не пытаясь импортировать что-либо из произвольного места в файловой системе), что делает все намного проще.

Вы создали несколько неполных python пакетов. Хорошей практикой является использование строчных имен для пакетов и случайного использования, если это более одного слова.

Фактическая проблема заключается в том, что вам нужен файл __init__.py в каждом каталоге. Эти файлы не нуждаются в содержимом, они только сообщают Python, что каталоги являются пакетами.

folder_1/
  |_ __init__.py
  |_ folder_a/
     |_ __init__.py
     |_ folder_aa/
        |_ __init__.py
        |_ other.py
  |_ folder_by/
     |_ __init__.py
     |_ myclass.py

Затем внутри myclass.py

from folder_1.folder_a.folder_aa import other
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...