[gelöst] Python 3: Debian taugliche Projektstruktur

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

[gelöst] Python 3: Debian taugliche Projektstruktur

Beitrag von buhtz » 25.11.2018 13:33:07

Wie man an diesem StackOverflow-Thread sieht, gibt es zich Varianten, wie man die Dateien und Imports eines Pyton Projekt strukturiert und wie man das Projekt letztendlich startet. Durch die Fülle der Varianten bin ich ziemlich verwirrt und die Wahl fällt mir schwer.

Spezifisch zu diesem Forum, wäre meine Frage, welche der Varianten wohl am Debian (und/oder GNU/Linux) kompatibelsten ist. In ferner Zukunft soll aus dem Projekt ein deb-Paket werden, welches in noch fernerer Zukunft dann auch noch im offiziellen Debian-repository landet. :mrgreen: Welche Projektstruktur und Start-Varianten sind hier vorgegeben?

Mein Projekt ist eine relativ simple Gtk-Desktop-Applikation.
Es gibt eine __init__.py und eine __main__.py. Die imports sind relativ.
Es gibt (noch) keine setup.py und auch kein virtuelles environment.

Aktuell nutze ich Debianvim zum Coden und starte alles auf der Debianbash mit einem simplen python3 -m feedybus.

Aktuelles Ereignis, dass mich auf diese Frage brachte war, dass ich mal Debianeric4 als IDE ausprobieren wollte. Diese zwingt einem aber scheinbar eine main.py als Start-Script auf und kann mit python3 -m nix anfangen. Der Rat dort war, ich solle mein Projekt in PYTHONPATH bekannt machen. Hier bin ich mir sehr unsicher, aber vermute Konfliktpotential - da ich auch sehr allgemeingültige Dateinamen verwendet, wie z.B. basics.py, config.py - was bei relativen imports IMO kein Problem darstellt. Ich müsste meine gesamten relativen imports in globale imports verwandeln. Woher weiß ich den, ob da nicht noch ein anderes basics Paket im System schlummert.
Zuletzt geändert von buhtz am 27.11.2018 13:46:04, insgesamt 1-mal geändert.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Python 3: Debian taugliche Projektstruktur

Beitrag von shoening » 25.11.2018 17:56:39

Hallo,

python Pakete würde ich generell über python setuptools paketieren.

Wenn Du dann noch ein Debian Paket daraus bauen willst, dann solltest Du Dir https://wiki.debian.org/Python/LibraryStyleGuide dazu ansehen.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Python 3: Debian taugliche Projektstruktur

Beitrag von buhtz » 25.11.2018 22:30:38

Das dachte ich mir schon soweit. Aber wie gesagt, Paketierung kommt später. ;) Konnte in den verlinkten Dokumenten auch keinen direkten Hinweis darauf finden, wie eine Python3-Application in Debian gestartet wird.

Mir fällt gerade kein Beispiel ein, aber wenn ich per Debianapt eine Anwendung installiere, die mit Python geschrieben wurde, taucht diese in meinem Start-Menü (z.B. in XFCE) auf. Welcher Aufruf liegt hinter diesem Menü-Eintrag? Wie erwartet Debian Python-Anwendungen zu starten - es gibt ja kein binary?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Python 3: Debian taugliche Projektstruktur

Beitrag von shoening » 27.11.2018 07:43:49

Hi,

wenn es Dir um ausführbare Scripte geht - das geschieht bei setuptools mittels entry_points.

Siehe dazu https://setuptools.readthedocs.io/en/la ... t-creation

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Antworten