I always wondered why the syntax for importing specific objects from a module is from module import x, y, z instead of import x, y, z from module.
From https://docs.python.org/3/reference/simple_stmts.html#import:
import foo # foo imported and bound locally
import foo.bar.baz # foo.bar.baz imported, foo bound locally
import foo.bar.baz as fbb # foo.bar.baz imported and bound as fbb
from foo.bar import baz # foo.bar.baz imported and bound as baz
from foo import attr # foo imported and foo.attr bound as attr
I conclude it's a matter of local availability/binding.