
Έγραψα ένα γρήγορο πρόγραμμα σε Python για να προσθέσετε ένα γραφικό περιβάλλον GTK σε ένα πρόγραμμα cli. Αναρωτιόμουν πώς μπορώ να δημιουργήσει ένα πρόγραμμα εγκατάστασης χρησιμοποιώντας distutils. Δεδομένου ότι είναι απλά ένα frontend GUI για μια εφαρμογή γραμμής εντολών λειτουργεί μόνο σε * nix ούτως ή άλλως οπότε δεν ανησυχώ γι 'αυτό είναι διαγώνια πλατφόρμα.


Κύριος στόχος μου είναι να δημιουργηθεί ένα πακέτο .deb για τους χρήστες debian / ubuntu, αλλά δεν καταλαβαίνω κάνει / να ρυθμίσετε τα αρχεία. Έχω κατά κύριο λόγο ήταν ένας προγραμματιστής web μέχρι τώρα.


Ευχαριστώ για τη βοήθειά σου!


**edit** : Ξέρει κανείς από ένα έργο που χρησιμοποιεί distutils έτσι θα μπορούσα να το δείτε σε δράση και, ξέρετε, στην πραγματικότητα δοκιμάστε κτίριο αυτό;


Εδώ είναι μερικές χρήσιμες συνδέσεις
------------------------------------


* [Ubuntu Python Οδηγός συσκευασίας](https://wiki.ubuntu.com/PackagingGuide/Python)


Ο οδηγός αυτός είναι ***πολύ*** χρήσιμη. Δεν ξέρω πώς το έχασα κατά τη διάρκεια της αρχικής μου κύμα gooling. Θα σας καθοδηγεί ακόμα και μέσα από τη συσκευασία μέχρι μια υπάρχουσα εφαρμογή πύθωνα
* [Η MOTU έργο του Ubuntu](https://wiki.ubuntu.com/MOTU/GettingStarted)


Αυτή είναι η επίσημη πακέτο διατήρηση του έργου σε ubuntu. Ο καθένας μπορεί να συμμετάσχει, και υπάρχουν πολλά tutorials και πληροφορίες σχετικά με τη δημιουργία πακέτων, όλων των τύπων, τα οποία περιλαμβάνουν το παραπάνω «οδηγό συσκευασία python».
* [Python distutils να deb; - Ars Technica Φόρουμ συζητήσεων](http://episteme.arstechnica.com/eve/forums/a/tpc/f/96509133/m/808004952931)


Σύμφωνα με αυτή τη συζήτηση, δεν μπορείτε να χρησιμοποιήσετε μόνο distutils. Αυτό δεν ακολουθεί τη μορφή πακέτων του Debian (ή κάτι τέτοιο). Υποθέτω ότι είναι ο λόγος που πρέπει dh\_make όπως φαίνεται στον οδηγό συσκευασίας Ubuntu
* [«Μια εντολή bdist\_deb για distutils](http://osdir.com/ml/linux.debian.devel.python/2004-10/msg00013.html)


Αυτός έχει κάποια ενδιαφέρουσα συζήτηση (είναι επίσης πως βρήκα τον οδηγό ubuntu) για τη συνένωση ένα zip αρχείο και ένα shell script για τη δημιουργία κάποιου είδους καθολική εκτελέσιμο (τίποτα με python και bash που είναι). Περίεργο. Επιτρέψτε μου να ξέρω αν κάποιος βρίσκει περισσότερες πληροφορίες σχετικά με αυτήν την πρακτική, επειδή ποτέ δεν έχω ακούσει για αυτό.
* [Περιγραφή της μορφής deb και πώς distutils ταιριάζουν - python λίστα](http://mail.python.org/pipermail/distutils-sig/2000-May/001000.html)

 
distutils Python - Ξέρει κανείς πώς να το χρησιμοποιήσει;
=========================================================



Δείτε τις [distutils απλό παράδειγμα](http://docs.python.org/dist/simple-example.html) . Αυτό είναι βασικά αυτό που είναι σαν, εκτός από πραγματική εγκατάσταση scripts συνήθως περιέχουν λίγο περισσότερες πληροφορίες. Δεν έχω δει κάποια που είναι ουσιαστικά πιο περίπλοκη, όμως. Στην ουσία, το μόνο που θα δώσει μια λίστα με το τι πρέπει να εγκατασταθεί. Μερικές φορές θα πρέπει να δώσει κάποιες DICTS χαρτογράφηση δεδομένου ότι η πηγή και να εγκατασταθεί δέντρα μπορεί να μην είναι το ίδιο.


Εδώ είναι μια πραγματική ζωή (ανώνυμα) παράδειγμα:



```
#!/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']) 
          ])

```
 

Τα περισσότερα προγράμματα Python θα χρησιμοποιήσει distutils. [Django](http://www.djangoproject.com) είναι μία - δείτε <http://code.djangoproject.com/svn/django/trunk/setup.py>


Θα πρέπει επίσης να διαβάσετε [την τεκμηρίωση](http://docs.python.org/dist/dist.html) , καθώς είναι πολύ περιεκτική και έχει μερικά καλά παραδείγματα.

 

distutils δεν είναι πραγματικά όλα αυτά δύσκολα μόλις πάρετε κρεμάτε από το. Είναι πραγματικά ακριβώς ένα θέμα να τεθεί σε κάποια μετα-πληροφορίες (όνομα προγράμματος, συγγραφέας, έκδοση, κ.λπ.) και, στη συνέχεια, επιλέγοντας ποια αρχεία που θέλετε να συμπεριλάβετε. Για παράδειγμα, εδώ είναι μονάδα ενός δείγματος distutils setup.py από μια αξιοπρεπώς σύμπλοκο βιβλιοθήκη Python:


[Kamaelia setup.py](http://code.google.com/p/kamaelia/source/browse/trunk/Code/Python/Kamaelia/setup.py)


Σημειώστε ότι αυτό δεν ασχολείται με οποιαδήποτε αρχεία ή ή οτιδήποτε δεδομένων, έτσι YMMV.


Σε ένα άλλο σημείωμα, συμφωνώ ότι η τεκμηρίωση distutils είναι ίσως μερικά από τα χειρότερα τεκμηρίωση της Python. Είναι εξαιρετικά περιεκτική σε ορισμένες περιοχές, αλλά παραμελεί κάποιες πολύ σημαντικές πληροφορίες σε άλλους.

 

Βρήκα το παρακάτω [πρόγραμμα εκμάθησης](http://wiki.python.org/moin/Distutils/Tutorial) να είναι πολύ χρήσιμη. Είναι μικρότερη από την τεκμηρίωση distutils και εξηγεί πως να στήσετε ένα τυπικό βήμα σχέδιο βήμα.

 

`apt-get install python-stdeb`


Python να βοηθητικό πρόγραμμα μετατροπής πηγαίο πακέτο Debian


Αυτό το πακέτο παρέχει κάποια εργαλεία για να παράγει πακέτα Debian από τα πακέτα Python μέσω ενός νέου distutils εντολή, sdist\_dsc. Οι Αυτόματη προεπιλογές προβλέπονται για το πακέτο Debian, αλλά πολλές πτυχές του πακέτου που προκύπτει μπορεί να προσαρμοστεί μέσω ενός αρχείου ρυθμίσεων.


* pypi εγκατάσταση θα ζητήσει την Ευρετήριο πακέτων Python (PyPI) για ένα πακέτο, το κατεβάσετε, να δημιουργήσετε ένα .deb από αυτό, και στη συνέχεια, εγκαταστήστε το πακέτο .deb.
* py2dsc θα μετατρέψει ένα tarball πηγή distutils ενσωματωμένο σε ένα πηγαίο πακέτο Debian.

 