Beiträge von kim88 im Thema „Python Programme packetieren (.deb)“

    Achso das ändert die Sache, ich dachte es ist etwas das du einfach in das breite Internet stellen willst.

    Wenn es exklusiv administrierte Clients sind, macht ein DEB definitiv Sinn. Min. Snap kann man auch lokal anbieten (Flatpak kenne ich mich weniger aus) - aber denke ein DEB ohne Repository reicht da.

    Der einfachste Weg dürfte wahrscheinlich "stdeb" sein.

    Mit

    Code
    pip install stdeb

    Kannst du stdeb installieren.

    Danach in deinem Projektverzeichnis:

    Code
    python setup.py --command-packages=stdeb.command sdist_dsc

    Wenn da durchgelaufen ist solltest du einen neuen Ordner im Verzeichnis mit dem Namen "deb_dist" haben.

    Dann per cd in diesen Ordner navigieren

    Code
    cd deb_dist/<dein_projektname>-<versionsnummer>

    Und dort dann mit DPKG das DEB Paket bauen:

    Code
    dpkg-buildpackage -rfakeroot -uc -us


    Hie rmusst du dich eventuell mit deinem Administrator absprechen. Die Parameter -uc -us stehen für "unsignes changelog" und "unsigned source". Bedeuten die Pakete werden nicht mit einem PGP Schlüssel signiert.

    Es kann sein das eure interne IT solche Pakete signiert haben will, dann musst entsprechend Schlüssel erstellen, der IT den Public Key geben und das Paket mit deinem KEY signieren. Aber um einfach mal ein DEB zu bekommen sollte das reichen..

    Mehr zu stdeb: inkl. Dokumentation und zusätzlichen Parametern: https://pypi.org/project/stdeb/

    Ich habe früher relativ viel paketiert und kann dir dabei sicherlich helfen.

    Ich würde aber direkt empfehlen, ein Flatpak (wenn grafische Oberfläche vorhanden) oder ein Snap daraus zu machen -> das kannst du universeller anbieten.

    Gerade Python ist ja relativ mühsam mit den Abhängigkeiten. Gerade bei Ubuntu 20.04 wird (wenn ich es im Kopf habe) standardmässig noch python2 mitgeliefert und python3 optional in einer relativ alten Version.

    Hier kannst du dann das Pech haben, dass du quasi alleine für Ubuntu mehrere unterschiedliche DEBs erstellen musst.

    Wenn dir DEB lieber als Flatpak oder Snap ist, würde ich überlegen direkt ein PPA zu erstellen. Dort kannst du das Paket mit unterschiedlichen Abhängigkeiten bauen und als Repository anbieten.