sqlalchemy
- это пакет, а импорт пакета автоматически не загружает его подмодули. Когда вы выполняете
import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()
Система импорта не загружает подмодуль sqlalchemy.ext
, потому что вы не запрашивали его.
Когда вы выполняете
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
Вы явно запросили загрузку sqlalchemy.ext
и sqlalchemy.ext.declarative
, поэтому доступ работает.
Некоторые пакеты автоматически загружают свои подмодули внутри своих __init__.py
, поэтому вы не должны импортировать подмодули явно. Это не то, на что вы должны положиться.
Вы можете проверить этот плагин FlutterGeofencing