diff --git a/setup.py b/setup.py index 6d8bc24d5534..20d088801044 100644 --- a/setup.py +++ b/setup.py @@ -120,6 +120,7 @@ # These are distutils.setup parameters that the various packages add # things to. packages = [] + namespace_packages = [] py_modules = [] ext_modules = [] package_data = {} @@ -177,6 +178,7 @@ if isinstance(package, str): continue packages.extend(package.get_packages()) + namespace_packages.extend(package.get_namespace_packages()) py_modules.extend(package.get_py_modules()) ext = package.get_extension() if ext is not None: @@ -220,6 +222,7 @@ """, license="BSD", packages=packages, + namespace_packages = namespace_packages, platforms='any', py_modules=py_modules, ext_modules=ext_modules, diff --git a/setupext.py b/setupext.py index 52c1e716f0b8..c0d8fd5a6c62 100644 --- a/setupext.py +++ b/setupext.py @@ -361,6 +361,15 @@ def get_packages(self): """ return [] + def get_namespace_packages(self): + """ + Get a list of namespace package names to add to the configuration. + These are added to the `namespace_packages` list passed to + `distutils.setup`. + """ + return [] + + def get_py_modules(self): """ Get a list of top-level modules to add to the configuration. @@ -576,6 +585,9 @@ def get_packages(self): 'mpl_toolkits.axisartist', ] + def get_namespace_packages(self): + return ['mpl_toolkits'] + class Tests(OptionalPackage): name = "tests"