ModuleNotFoundError when installing a package with entry points using pipx
ModuleNotFoundError when installing a package with entry points using pipx
I'm writing a python package that I would like to distribute as a standalone terminal app. The structure of the project folder is the following:
energy-monitor/
-- config/
-- doc/
-- tests/
-- energymonitor/
---- init.py -> (empty)
---- main.py -> def main()
---- data/
---- ..other packages..
-- project.toml
I'm using setuptools to generate a .tar.gz archive, some relevant parts of the project.toml file are:
[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [project] name = "energy-monitor" version = "0.0.1" ... [tool.setuptools.packages.find] where = ["energymonitor"] [tool.setuptools.package-data] data = ["data/*"] [project.scripts] energy-monitor = "energymonitor.main:main"
I generate the .tar.gz and the .whl files with the command python -m build
, then I run pipx install path/to/energy-monitor.tar.gz
. The installation is succesful, but when calling energy-monitor from the command line I get:
Traceback (most recent call last): File "/home/mattia/.local/bin/energy-monitor", line 5, in <module> from energymonitor.main import main ModuleNotFoundError: No module named 'energymonitor'
Why is this happening? I was not able to find any helpful solution online. It's the first that I build a python package so sorry if the issue is trivial.
- python version: 3.11.3