Флаттер: выбор гео-местоположения на заднем плане

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, поэтому вы не должны импортировать подмодули явно. Это не то, на что вы должны положиться.

0
задан Seby Joseph 18 January 2019 в 15:40
поделиться