From 0781e0d04671cebca7ed68a35892083de1052e21 Mon Sep 17 00:00:00 2001 From: Philipp Albrecht Date: Thu, 6 Jul 2023 10:25:19 +0200 Subject: Include namespace packages in setuptools build Building qutebrowser showed some warnings as the following: ``` /tmp/build-env-4jb2oh0t/lib/python3.8/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'qutebrowser.html' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'qutebrowser.html' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'qutebrowser.html' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'qutebrowser.html' to be distributed and are already explicitly excluding 'qutebrowser.html' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! ``` Using `find_namespace_packages()` as suggested in the setuptools docs[1] solved the issue. [1] https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#finding-namespace-packages --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e73ba1d0d..d80bfb932 100755 --- a/setup.py +++ b/setup.py @@ -64,7 +64,7 @@ def _get_constant(name): try: common.write_git_file() setuptools.setup( - packages=setuptools.find_packages(exclude=['scripts', 'scripts.*']), + packages=setuptools.find_namespace_packages(), include_package_data=True, entry_points={'gui_scripts': ['qutebrowser = qutebrowser.qutebrowser:main']}, -- cgit v1.2.3-54-g00ecf