Python сумасшедший импорт модуля в пакете - PullRequest
0 голосов
/ 28 мая 2020

Я внутри пакета python, где есть A.py, B.py и файл инициализации, который позволяет мне импортировать пакеты в каталог выше.

Таким образом, содержимое моего init файл выглядит следующим образом:

__path__ = __import__('pkgutil').extend_path(__path__, __name__)

Теперь я хочу импортировать класс B.py в A.py. Я пробовал использовать from B import myClass, но это не работает. Я также попытался добавить файл в путь, добавив эту строку в файл инициализации:

__path__.append(__file__)

Как добавить B.py в путь?

- изменить -

Чтобы прояснить ситуацию, вот структура моих пакетов и модулей:

|app.py 
|package1
    |__init__.py
    |C.py
    |package2
        |__init__.py
        |A.py
        |B.py

В A.py мне нужно импортировать классы из B.py и C .py

1 Ответ

0 голосов
/ 28 мая 2020

Если это код, связанный с python 3 ... тогда действительно , __init__.py больше не требуется.

Пока ваши файлы, из которых вы хотите импортировать классы / функции, находятся в одном каталоге, вы должны иметь возможность просто вызвать файл, который вы хотите импортировать, следующим образом:

 import B.myClass

или,

 from . import myClass
 ### this imports all the classes and moduels from within the same directory 
 ### as you're currently in even if it has more than one file (but only imports myClass)
...