Frage

Ich habe ein schnelles Programm in Python geschrieben, um einem CLI-Programm eine GTK-GUI hinzuzufügen.Ich habe mich gefragt, wie ich mit distutils ein Installationsprogramm erstellen kann.Da es sich nur um ein GUI-Frontend für eine Befehlszeilen-App handelt, funktioniert es sowieso nur unter *nix, sodass ich mir keine Sorgen mache, dass es plattformübergreifend ist.

Mein Hauptziel ist es, ein .deb-Paket für Debian/Ubuntu-Benutzer zu erstellen, aber ich verstehe die Make/Configure-Dateien nicht.Bisher war ich hauptsächlich Webentwickler.

bearbeiten:Kennt jemand ein Projekt, das Distutils verwendet, sodass ich es in Aktion sehen und tatsächlich versuchen kann, es zu erstellen?

Hier finden Sie einige nützliche Links

  • Ubuntu Python-Paketierungshandbuch

    Dieser Leitfaden ist sehr hilfreich.Ich weiß nicht, wie ich es während meiner ersten Gool-Welle vermisst habe.Es führt Sie sogar durch das Packen einer vorhandenen Python-Anwendung

  • Das Ubuntu MOTU-Projekt

    Dies ist das offizielle Paketverwaltungsprojekt bei Ubuntu.Jeder kann mitmachen, und es gibt viele Tutorials und Informationen zum Erstellen von Paketen aller Art, darunter auch den oben genannten „Python-Paketierungsleitfaden“.

  • "Python Distutils zu Deb?" - Diskussion von ARS Technica Forum

    Laut diesem Gespräch können Sie nicht einfach Distutils verwenden.Es folgt nicht dem Debian-Paketformat (oder so ähnlich).Ich vermute, dass Sie deshalb dh_make benötigen, wie im Ubuntu Packaging-Handbuch beschrieben

  • „Ein bdist_deb-Befehl für distutils

    Hier gibt es eine interessante Diskussion (so habe ich auch den Ubuntu-Leitfaden gefunden) über die Verkettung einer ZIP-Datei und eines Shell-Skripts, um eine Art universelle ausführbare Datei zu erstellen (also alles mit Python und Bash).seltsam.Lassen Sie es mich wissen, wenn jemand weitere Informationen zu dieser Praxis findet, da ich noch nie davon gehört habe.

  • Beschreibung des Deb-Formats und wie Distutils hineinpassen – Python-Mailingliste

War es hilfreich?

Lösung

Siehe die distutils einfaches Beispiel.Im Grunde ist es so, nur dass echte Installationsskripte normalerweise etwas mehr Informationen enthalten.Ich habe jedoch keine gesehen, die grundsätzlich komplizierter ist.Im Wesentlichen geben Sie ihm lediglich eine Liste dessen, was installiert werden muss.Manchmal müssen Sie ihm einige Zuordnungsanweisungen geben, da die Quelle und die installierten Bäume möglicherweise nicht identisch sind.

Hier ist ein reales (anonymisiertes) Beispiel:

#!/usr/bin/python 

from distutils.core import setup 

setup (name = 'Initech Package 3', 
          description = "Services and libraries ABC, DEF", 
          author = "That Guy, Initech Ltd", 
          author_email = "that.guy@initech.com", 
          version = '1.0.5', 
          package_dir = {'Package3' : 'site-packages/Package3'}, 
          packages = ['Package3', 'Package3.Queries'], 
          data_files = [ 
                       ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) 
          ])

Andere Tipps

apt-get install python-stdeb

Dienstprogramm zur Konvertierung von Python- in Debian-Quellpaketen

Dieses Paket stellt einige Tools zum Erstellen von Debian-Paketen aus Python-Paketen über einen neuen distutils-Befehl, sdist_dsc, bereit.Für das Debian-Paket werden automatische Standardeinstellungen bereitgestellt, viele Aspekte des resultierenden Pakets können jedoch über eine Konfigurationsdatei angepasst werden.

  • Pypi-Install wird den Python-Paketindex (PYPI) für ein Paket abfragen, es herunterladen, ein .deb daraus erstellen und dann die .deb installieren.
  • PY2DSC wandelt einen von in Distutils gebauten Quell-Tarball in ein Debian-Quellpaket um.

Die meisten Python-Programme verwenden Distutils. Django ist eine Eins – siehe http://code.djangoproject.com/svn/django/trunk/setup.py

Sie sollten auch lesen die Dokumentation, da es sehr umfassend ist und einige gute Beispiele enthält.

Folgendes habe ich gefunden Lernprogramm sehr hilfreich sein.Es ist kürzer als die Distutils-Dokumentation und erklärt Schritt für Schritt, wie ein typisches Projekt eingerichtet wird.

distutils ist wirklich nicht so schwierig, wenn man erst einmal den Dreh raus hat.Es geht eigentlich nur darum, einige Metainformationen einzugeben (Programmname, Autor, Version usw.) und dann auszuwählen, welche Dateien Sie einschließen möchten.Hier ist zum Beispiel ein Beispielmodul distutils setup.py aus einer einigermaßen komplexen Python-Bibliothek:

Kamaelia setup.py

Beachten Sie, dass es hier nicht um Datendateien oder ähnliches geht, also YMMV.

Ansonsten stimme ich zu, dass die Distutils-Dokumentation wahrscheinlich zu den schlechtesten Python-Dokumentationen gehört.In einigen Bereichen ist es äußerst umfassend, in anderen werden jedoch einige wirklich wichtige Informationen vernachlässigt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top