that' the story todaychange is always possibility in open source projects (indeedthe prior edition quoted plans on string formatting and relative imports in that were later abandoned)so as usualbe sure to watch for future developments on this front given the performance advantage and auto-initialization code of regular packagesthoughit seems unlikely that they would be removed altogether namespace packages in action to see how namespace packages workconsider the following two modules and nested directory structure--with two subdirectories named sub located in different parent directoriesdir and dir :\code\ns\dir \sub\mod py :\code\ns\dir \sub\mod py if we add both dir and dir to the module search pathsub becomes namespace package spanning bothwith the two module files available under that name even though they live in separate physical directories here' the filescontents and the required path settings on windowsthere are no __init__ py files here--in fact there cannot be in namespace packagesas this is their chief physical differentiationc:\codemkdir ns\dir \sub :\codemkdir ns\dir \sub two dirs of same name in different dirs and similar outside windows :\codetype ns\dir \sub\mod py print( 'dir \sub\mod 'module files in different directories :\codetype ns\dir \sub\mod py print( 'dir \sub\mod ' :\codeset pythonpath= :\code\ns\dir ; :\code\ns\dir nowwhen imported directly in and laterthe namespace package is the virtual concatenation of its individual directory componentsand allows further nested parts to be accessed through its singlecomposite name with normal importsc:\codec:\python \python import sub sub namespace packagesnested search paths sub __path__ _namespacepath([' :\\code\\ns\\dir \\sub'' :\\code\\ns\\dir \\sub']from sub import mod dir \sub\mod import sub mod dir \sub\mod content from two different directories mod python namespace packages