module packages so farwhen we've imported moduleswe've been loading files this represents typical module usageand it' probably the technique you'll use for most imports you'll code early on in your python career howeverthe module import story is bit richer than have thus far implied in addition to module namean import can name directory path directory of python code is said to be packageso such imports are known as package imports in effecta package import turns directory on your computer into another python namespacewith attributes corresponding to the subdirectories and module files that the directory contains this is somewhat advanced featurebut the hierarchy it provides turns out to be handy for organizing the files in large system and tends to simplify module search path settings as we'll seepackage imports are also sometimes required to resolve import ambiguities when multiple program files of the same name are installed on single machine because it is relevant to code in packages onlywe'll also introduce python' recent relative imports model and syntax here as we'll seethis model modifies search paths in xand extends the from statement for imports within packages in both and this model can make such intrapackage imports more explicit and succinctbut comes with some tradeoffs that can impact your programs finallyfor readers using python and laterits new namespace package model-which allows packages to span multiple directories and requires no initialization file-is also introduced here this new-style package model is optional and can be used in concert with the original (now known as "regular"package modelbut it upends some of the original model' basic ideas and rules because of thatwe'll explore regular packages here first for all readersand present namespace packages last as an optional topic