5
submitted
1 year ago* (last edited 1 year ago)
by
breadcrumb@lemmy.world
to
c/python@programming.dev
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?
Oh I didn't consider these fields. When I see a company for hardware products I always think they're gonna make you program some microcontrollers or similar, with no OS involved. But it's true that many of them need to develop at least some software to interface with a OS. Thanks for sharing.