Импорт классов из другого каталога в пределах одного проекта - PullRequest
0 голосов
/ 26 февраля 2020

У меня следующая структура каталогов:

.
├── models
│   ├── description.py
│   ├── identification.py
│   └── person.py
└── utils
    └── generators
        └── person.py

Я получаю следующую ошибку при импорте классов в каждом файле, которые существуют в каталоге models:

Traceback (most recent call last):
  File "utils/generators/person.py", line 1, in <module>
    from models.person import Person
ModuleNotFoundError: No module named 'models'

И это код в моем utils/generators/person.py файле:

from models.person import Person
from models.identification import Identification
from models.description import Description

Как я могу импортировать эти классы в мой файл?

1 Ответ

0 голосов
/ 26 февраля 2020

Python не выполняет поиск модулей при импорте в каталогах, которые являются потомками каталогов верхнего уровня.

Чтобы устранить эту проблему, вы можете ввести main.py в root (вы помеченный как точка), который будет выполнять импорт в общее пространство имен.

В отдельной заметке, как мудро указано в комментариях, больше нет необходимости добавлять пустые __init__.py файлы ( см. этот ответ ) для Python 3.3+, поэтому это не может быть проблемой для Python 3.

...