Хотя sys.path.insert (), вероятно, будет работать, это довольно "хакерское" решение. И одна из причин этого заключается в том, что линтер не может выполнить предварительную проверку, если последующий импорт будет работать: sys.path будет изменяться только во время выполнения. Похоже, что это не проблема для самого автора, но в случае, если ему когда-нибудь понадобится сотрудничать с другими Python разработчиками, они, скорее всего, сначала проверят отчет linter его кода, прежде чем загружать его в свой репозиторий.
" Чистое кодирование " отличается, но не волхвы c вообще. Используйте редактируемые установки, чтобы заставить ваш пакет вести себя как в целевой установке:
pip install -e mypackage
Однако для этого требуется минимальный setup.py в папке mypackage root с
import setuptools
setuptools.setup(name='mypackage')
Вы также можете попробовать добавить флаг no-quality-aid (noqa) в конец вашего оператора импорта через
import app_database as db #noqa
, но я бы не рекомендовал делать это .