Unable to include data files in python package with setuptools.
Unable to include data files in python package with setuptools.
I want to build a python package using setuptools. The folder structure of the project is the following (some non-essential parts have been deleted):
energy-monitor ├── config │ ├── config.yml │ └── secrets.yml ├── data │ └── cpu_tdp.json ├── energy_monitor │ ├── core │ │ ├── gui.py │ │ ├── __init__.py │ ├── data │ │ └── tableExport.json │ ├── __init__.py │ ├── main.py │ └── utils │ ├── api_calls.py │ └── __init__.py ├── energy-monitor.py ├── LICENSE ├── MANIFEST.in ├── pyproject.toml ├── README.md └── requirements.txt
The content of the pyproject.toml file is the following (some non-essential parts have been deleted):
[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [project] name = "energy_monitor" version = "0.0.1" description = "Energy monitor" readme = "README.md" requires-python = ">=3.11" license = {text = "GPLv3"} classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] dynamic = ["dependencies"] [tool.setuptools.dynamic] dependencies = {file = ["requirements.txt"]} [tool.setuptools] packages = [ "energy_monitor", "energy_monitor.core", "energy_monitor.utils" ] include-package-data = true [project.scripts] energy-monitor = "energy_monitor.main:main"
Finally, the content of the MANIFEST.in file is the following:
include README.md include LICENSE graft config
I generate the package with python -m build
and install the .tar.gz archive with pipx
.
According to setuptools documentation, I expect to find my config folder, together with README and LICENSE in the interpreter directory (site-packages) after the installation. However, this doesn't happen and I cannot run the app becase it complains that it doesn't find the config. What am I missing?