
Έχω διαβάσει κάποια σχετικά .egg τα αρχεία και τους έχω παρατηρήσει στο lib κατάλογο μου, αλλά ποια είναι τα πλεονεκτήματα / μειονεκτήματα της χρήσης, στη συνέχεια, ως προγραμματιστής;

 
Ποια είναι τα πλεονεκτήματα της συσκευασίας python σας βιβλιοθήκη / εφαρμογή ως αρχείο .egg;
============================================================================================



Από το [Kit κοινότητα Python Enterprise Application](http://peak.telecommunity.com/DevCenter/PythonEggs) :



> 
> *«Τα αυγά είναι να Pythons όπως βάζα είναι σε Java ...»*
> 
> 
> αυγά Python είναι ένας τρόπος ομαδοποίησης πρόσθετες πληροφορίες με ένα πρόγραμμα Python, που επιτρέπει εξαρτήσεις του έργου που πρέπει να ελέγχονται και να ικανοποιούνται κατά το χρόνο εκτέλεσης, καθώς και επιτρέποντας σχέδια για την παροχή plugins για άλλα έργα. Υπάρχουν αρκετές δυαδικές μορφές που ενσωματώνουν τα αυγά, αλλά τα πιο κοινά είναι zipfile μορφή «.egg», επειδή είναι μια βολική ένα για τη διανομή έργων. Όλα στήριξης μορφές, συμπεριλαμβανομένων των δεδομένων πακέτου ειδικά, τα μεταδεδομένα του έργου σε επίπεδο, επεκτάσεις Γ, και τον κώδικα Python.
> 
> 
> Τα κύρια οφέλη της Python Τα αυγά είναι:
> 
> 
> * Δίνουν τη δυνατότητα εργαλεία όπως το «Easy Install» διαχειριστής πακέτων Python
> * .egg αρχεία είναι «μηδέν εγκατάσταση» μορφή για ένα πακέτο Python? δεν απαιτείται κατασκευή ή εγκατάσταση βήμα, απλά να τους θέσει σε PYTHONPATH ή sys.path και τη χρήση τους (μπορεί να απαιτήσει από τον χρόνο εκτέλεσης εγκατασταθεί, εάν χρησιμοποιούνται προεκτάσεις C ή αρχεία δεδομένων)
> * Μπορούν να περιλαμβάνουν μεταδεδομένα πακέτο, όπως τα άλλα αυγά που εξαρτώνται από την
> * Επιτρέπουν «πακέτα ονομάτων» (πακέτα που περιέχουν μόνο άλλα πακέτα) να χωριστεί σε ξεχωριστά τις διανομές (π.χ. zope. *, Στριμμένα.* , Κορυφή. * Συσκευασίες που μπορούν να διανεμηθούν ως ξεχωριστά αυγά, σε αντίθεση με την κανονική πακέτα που πρέπει πάντα να τοποθετείται κάτω από την ίδια γονικό κατάλογο. Αυτό επιτρέπει σε ό, τι είναι σήμερα τεράστια μονολιθικά πακέτα που πρόκειται να διανεμηθούν ως ξεχωριστά συστατικά.)
> * Επιτρέπουν εφαρμογές ή τις βιβλιοθήκες για να καθορίσετε την απαραίτητη έκδοση της βιβλιοθήκης, ώστε να μπορείτε να π.χ. απαιτούν ( «Twisted-Διαδίκτυο> = 2,0»), πριν κάνει μια twisted.internet εισαγωγής.
> * Είναι μια μεγάλη μορφή για τη διανομή των επεκτάσεων ή προσθηκών στο επεκτάσιμη εφαρμογές και τα πλαίσια (όπως Trac, η οποία χρησιμοποιεί τα αυγά για plugins από 0.9b1), επειδή ο χρόνος εκτέλεσης του αυγού παρέχει απλή APIs για να εντοπίσετε τα αυγά και να διαφημίζονται τα σημεία εισόδου τους (παρόμοια σε έννοια «σημείο επέκτασης» Eclipse του).
> * Υπάρχουν επίσης και άλλα οφέλη που μπορεί να έρθει από το να έχουν μια τυποποιημένη μορφή, παρόμοια με τα οφέλη της μορφής «βάζο» της Java.
> 
> 
> 


-Αδάμ

 

.egg αρχεία είναι βασικά ένας ωραίος τρόπος για να αναπτύξετε την εφαρμογή python σας. Μπορείτε να σκεφτείτε από το ως κάτι σαν .jar αρχεία για Java.


Περισσότερες πληροφορίες [εδώ](http://peak.telecommunity.com/DevCenter/PythonEggs) .

 

Τα αυγά είναι ένα πολύ καλός τρόπος για να διανείμει εφαρμογές python. Σκεφτείτε το σαν ένα ανεξάρτητο αρχείο .deb πλατφόρμα που θα εγκαταστήσει όλες τις εξαρτήσεις και εταζέρα. Το πλεονέκτημα είναι ότι είναι εύκολο στη χρήση για τον τελικό χρήστη. Το μειονέκτημα είναι ότι μπορεί να είναι επαχθής για τη συσκευασία της εφαρμογής σας ως αρχείο .egg.


Θα πρέπει, επίσης, να προσφέρουν έναν εναλλακτικό τρόπο εγκατάστασης εκτός από την .eggs. Υπάρχουν μερικοί άνθρωποι που δεν τους αρέσει, χρησιμοποιώντας τα αυγά, επειδή δεν τους αρέσει η ιδέα μιας εγκατάστασης προγράμματος λογισμικού ό, τι το λογισμικό που θέλει. Αυτά συνήθως τείνουν να είναι sysadmin τύπους.

 

Ό, τι κι αν κάνετε, μην παύσει τη διανομή της εφαρμογής σας, επίσης, ως ένα tarball, καθώς αυτό είναι το πιο εύκολο συσκευάσιμο μορφή για τα λειτουργικά συστήματα με sysetem πακέτο.

 

Για απλά προγράμματα Python, τότε μάλλον δεν χρειάζεται να χρησιμοποιήσετε τα αυγά. Η διανομή των πρώτων .py αρχεία θα πρέπει να είναι αρκετή? είναι σαν τη διανομή αρχείων προέλευσης για το GNU / Linux. Μπορείτε επίσης να χρησιμοποιήσετε τα διάφορα OS «συσκευαστές» (όπως py2exe ή py2app) για τη δημιουργία .exe, .dmg, ή άλλα αρχεία για διαφορετικά λειτουργικά συστήματα.


Πιο πολύπλοκα προγράμματα, π.χ. Django, λίγο πολύ απαιτούν τα αυγά, λόγω των διαφόρων ενοτήτων και των εξαρτήσεων που απαιτούνται.

 

Ένα αυγό από μόνη της δεν είναι καλύτερη από μια σωστή κυκλοφορία πηγή. Το καλό είναι ο χειρισμός της εξάρτησης. Όπως debian ή rpm πακέτα, μπορείτε να πείτε ότι εξαρτάται από τα άλλα αυγά και θα εγκατασταθεί αυτόματα (μέσω [pypi.python.org](http://pypi.python.org) ).


Μια δεύτερη παρατήρηση: η μορφή αυγό μόνο του είναι ένα δυαδικό συσκευασμένο μορφή. Κανονική πακέτα python που αποτελούνται από απλά κώδικα python καλύτερα κατανεμημένα ως «δελτία πηγή», τόσο «python sdist setup.py» που οδηγούν σε .tar.gz. Αυτές είναι επίσης κοινώς ονομάζεται «αυγά», όταν ανεβάσει στο pypi.


Σε περίπτωση που χρειάζεστε δυαδικό αυγά: όταν ομαδοποίηση κάποια επέκταση κώδικα C. Θα χρειαστείτε αρκετές δυαδικό αυγά (ένα 32 bit unix ένα, ένα τα παράθυρα το ένα, κλπ) τότε.

 