Для меня pylint
правильно отметить эту ошибку здесь
модуль верхнего уровня - database
(содержит файл __init__.py
)
Ваш импорт должен выглядеть (полностью)
from database.database_dispatcher import ...
или (явно относительный) (да! .
перед именем модуля является преднамеренным)
from .database_dispatcher import ...
Мое дальнейшее предположение заключается в том, что вы в настоящее время вызываете свой скрипт как python ./database/main.py ...
, который ставит ./database
в начале sys.path
, так что может показаться , что ваш импорт работает правильно - однако это обходит структуру вашего модуля. Вы должны вызывать ваш скрипт, используя python -m database.main ...
.
Обратите внимание, что неявный относительный импорт был удален в python 3.x - хотя эта (imo) бородавка сценария sys.path
вставка остается.