In Python, namespace packages have subpackages different locations. It allows different projects to use the same package name.
Namespace packages are Python packages whose subpackages are in different directories.
It allows different projects to use the same package. For example, many components of zope are developed in different projects with different release cycles. Yet, all of them are expected to be imported from a submodule of a zope
package. Without namespace packages, it would be impossible: Python does not allow a package to have its code in multiple locations.
setuptools provides namespace packages. PEP 420 proposes a way of adding it into Python 3.3.
More can be found in setuptools documentation.