Nach Jahren des 'Herumfrickelns' möchte ich gerne meine selbst erstellten Python-Skripte sauber mittels pipx in meinem Userverzeichnis (Debian Linux) installieren.
Ich schaffe es aber nicht, einen CLI-Einsprungspunkt zu konfigurieren.
Meine-Testprojektstruktur sieht so aus:
Code: Alles auswählen
.
├── pyproject.toml
└── src
└── test2
├── app.py
├── globals.py
├── __init__.py
└── __pycache__
├── app.cpython-313.pyc
├── globals.cpython-313.pyc
└── __init__.cpython-313.pyc
Code: Alles auswählen
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "test2"
dynamic = ["version"]
[tool.hatch.version]
path = "src/test2/globals.py"
[project.scripts]
cli-name = "app:main"
Code: Alles auswählen
VERSION = "test-1-2-3"
def main():
print("Hallo Version:", VERSION)
Was leider NICHT funktioniert ist
cli-name = "app:main"
Ich habe alle möglichen Kombinationen von
cli-name = "foo.bar.baz.hin.und.her:main"
ausprobiert, aber ich bekomme IMMER die Fehlermeldung:
====> '.' executable script not found in package 'test2'. <====
Dabei starte ich pipx so (wenn dass klappt, würde ich :
pipx run --no-cache .
Teilweise bezog sich die Fehlermeldung auch auf vorherige Test-Versionen, weshalb ich hier --no-cache verwende.
Ich habe auch schon versucht meine main() in __init__.py zu exportieren, was aber auch nichts gebracht hatte.
Jetzt bin ich an einem Punkt angekommen, wo ich einfach nicht mehr weiter weiß und hoffe, hier Hilfe zu bekommen. Oder ist es etwa generell quatsch "pipx run" zu verwenden?
LG
loph
p.s.
Kleine Bonus-Task: Wie importiere ich am besten VERSION aus globals.py in meine app.py, sodass ich app.py direkt mit "python app.py", aber auch innerhalb von test2 als Modul ausführen kann ( __init__.py beinhaltet: "from .globals import VERSION")?
