Κυκλοφορία του PyOxidizer για τη συσκευασία έργων Python σε αυτόνομα εκτελέσιμα

Εισήχθη πρώτη έκδοση του βοηθητικού προγράμματος Πυροξειδωτικό, το οποίο σας επιτρέπει να πακετάρετε ένα έργο σε Python με τη μορφή ενός αυτόνομου εκτελέσιμου αρχείου, συμπεριλαμβανομένου του διερμηνέα Python και όλων των βιβλιοθηκών και πόρων που είναι απαραίτητοι για την εργασία. Τέτοια αρχεία μπορούν να εκτελεστούν σε περιβάλλοντα χωρίς εγκατεστημένο εργαλείο Python ή ανεξάρτητα από την απαιτούμενη έκδοση της Python. Το PyOxidizer μπορεί επίσης να δημιουργήσει στατικά συνδεδεμένα εκτελέσιμα αρχεία που δεν είναι συνδεδεμένα με βιβλιοθήκες συστήματος. Ο κώδικας του έργου είναι γραμμένος σε Rust και διανέμονται από με άδεια χρήσης MPL (Mozilla Public License) 2.0.

Το έργο βασίζεται στην ομώνυμη ενότητα γλώσσας Rust, η οποία σας επιτρέπει να ενσωματώσετε έναν διερμηνέα Python σε προγράμματα Rust για να εκτελέσετε σενάρια Python σε αυτά. Το PyOxidizer έχει πλέον ξεπεράσει το να είναι ένα πρόσθετο Rust και τοποθετείται ως εργαλείο για τη δημιουργία και τη διανομή αυτόνομων πακέτων Python σε ένα ευρύτερο κοινό. Για όσους δεν χρειάζεται να διανέμουν εφαρμογές ως εκτελέσιμο αρχείο, το PyOxidizer παρέχει τη δυνατότητα δημιουργίας βιβλιοθηκών κατάλληλων για σύνδεση με οποιαδήποτε εφαρμογή για την ενσωμάτωση ενός διερμηνέα Python και το απαραίτητο σύνολο επεκτάσεων.

Για τους τελικούς χρήστες, η παράδοση του έργου ως ενιαίου εκτελέσιμου αρχείου απλοποιεί σημαντικά την εγκατάσταση και εξαλείφει την εργασία επιλογής εξαρτήσεων, κάτι που είναι σημαντικό, για παράδειγμα, για πολύπλοκα έργα Python όπως τα προγράμματα επεξεργασίας βίντεο. Για τους προγραμματιστές εφαρμογών, το PyOxidizer σάς επιτρέπει να εξοικονομείτε χρόνο στην οργάνωση της παράδοσης εφαρμογών, χωρίς να χρειάζεται να χρησιμοποιείτε διαφορετικά εργαλεία για τη δημιουργία πακέτων για διαφορετικά λειτουργικά συστήματα.

Η χρήση των προτεινόμενων συγκροτημάτων έχει επίσης θετική επίδραση στην απόδοση - τα αρχεία που δημιουργούνται στο PyOxidizer εκτελούνται πιο γρήγορα από ό,τι όταν χρησιμοποιείται το σύστημα Python λόγω της εξάλειψης της εισαγωγής και του ορισμού βασικών μονάδων. Στο PyOxidizer, οι μονάδες εισάγονται από τη μνήμη - όλες οι ενσωματωμένες μονάδες φορτώνονται αμέσως στη μνήμη και στη συνέχεια χρησιμοποιούνται χωρίς πρόσβαση στο δίσκο). Σε δοκιμές, ο χρόνος εκκίνησης της εφαρμογής κατά τη χρήση του PyOxidizer μειώνεται περίπου στο μισό.

Ανάμεσα στα ήδη υπάρχοντα παρόμοια έργα μπορούν να σημειωθούν τα εξής: PyInstaller (ξεπακετάρει το αρχείο σε έναν προσωρινό κατάλογο και εισάγει λειτουργικές μονάδες από αυτόν), py2exe (συνδεδεμένο με την πλατφόρμα των Windows και απαιτεί πολλαπλά αρχεία για να διανεμηθούν), py2app (συνδεδεμένο με macOS), cx-πάγωμα (απαιτείται ξεχωριστή συσκευασία εξάρτησης), Shiv и PEX (σχηματίστε ένα πακέτο σε μορφή zip και απαιτεί Python στο σύστημα), Νύχτα (μεταγλωττίζει τον κώδικα αντί να ενσωματώνει διερμηνέα), πυνίστης (δεμένο με Windows) PyRun (ιδιόκτητη ανάπτυξη χωρίς εξήγηση αρχών λειτουργίας).

Στο τρέχον στάδιο ανάπτυξης, το PyOxidizer έχει ήδη εφαρμόσει την κύρια λειτουργικότητα για τη δημιουργία εκτελέσιμων αρχείων για Windows, macOS και Linux. Από μη διαθέσιμες προς το παρόν ευκαιρίες γιορτάζεται έλλειψη τυπικού περιβάλλοντος κατασκευής, αδυναμία δημιουργίας πακέτων σε μορφές MSI, DMG και deb/rpm, προβλήματα με έργα συσκευασίας που περιλαμβάνουν σύνθετες επεκτάσεις στη γλώσσα C, έλλειψη εντολών για υποστήριξη παράδοσης ("pyoxidizer add", "pyoxidizer analysis" και «αναβάθμιση pyoxidizer» ), περιορισμένη υποστήριξη για Terminfo και Readline, έλλειψη υποστήριξης για εκδόσεις εκτός της Python 3.7, έλλειψη υποστήριξης για συμπίεση πόρων, αδυναμία διασταυρούμενης μεταγλώττισης.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο