Rilis PyOxidizer untuk mengemas proyek Python ke dalam executable mandiri

Disampaikan oleh rilis pertama utilitas PyOksidator, yang memungkinkan Anda mengemas proyek dengan Python ke dalam bentuk file mandiri yang dapat dieksekusi, termasuk juru bahasa Python dan semua perpustakaan serta sumber daya yang diperlukan untuk pekerjaan tersebut. File tersebut dapat dieksekusi di lingkungan tanpa menginstal alat Python atau terlepas dari versi Python yang diperlukan. PyOxidizer juga dapat menghasilkan file eksekusi yang tertaut secara statis dan tidak tertaut ke perpustakaan sistem. Kode proyek ditulis dalam Rust dan didistribusikan oleh berlisensi di bawah MPL (Mozilla Public License) 2.0.

Proyek ini didasarkan pada modul bahasa Rust dengan nama yang sama, yang memungkinkan Anda menyematkan juru bahasa Python ke dalam program Rust untuk menjalankan skrip Python di dalamnya. PyOxidizer kini telah melampaui sekedar add-on Rust dan diposisikan sebagai alat untuk membangun dan mendistribusikan paket Python mandiri ke khalayak yang lebih luas. Bagi mereka yang tidak perlu mendistribusikan aplikasi sebagai file yang dapat dieksekusi, PyOxidizer menyediakan kemampuan untuk menghasilkan perpustakaan yang cocok untuk dihubungkan dengan aplikasi apa pun untuk menyematkan juru bahasa Python dan serangkaian ekstensi yang diperlukan.

Untuk pengguna akhir, mengirimkan proyek sebagai satu file yang dapat dieksekusi sangat menyederhanakan instalasi dan menghilangkan pekerjaan memilih dependensi, yang penting, misalnya, untuk proyek Python yang kompleks seperti editor video. Untuk pengembang aplikasi, PyOxidizer memungkinkan Anda menghemat waktu mengatur pengiriman aplikasi, tanpa perlu menggunakan alat berbeda untuk membuat paket untuk sistem operasi berbeda.

Penggunaan rakitan yang diusulkan juga memiliki efek positif pada kinerja - file yang dihasilkan di PyOxidizer berjalan lebih cepat dibandingkan saat menggunakan sistem Python karena penghapusan impor dan definisi modul dasar. Di PyOxidizer, modul diimpor dari memori - semua modul bawaan segera dimuat ke dalam memori dan kemudian digunakan tanpa mengakses disk). Dalam pengujian, waktu peluncuran aplikasi saat menggunakan PyOxidizer berkurang sekitar setengahnya.

Di antara proyek serupa yang sudah ada adalah sebagai berikut: Penginstal Py (membongkar file ke direktori sementara dan mengimpor modul darinya), py2exe (terikat dengan platform Windows dan memerlukan banyak file untuk didistribusikan), py2app (terkait dengan macOS), cx-beku (membutuhkan kemasan ketergantungan terpisah), Pisau и PEX (membentuk paket dalam format zip dan membutuhkan Python pada sistem), Nuitka (mengkompilasi kode daripada menyematkan juru bahasa), ahli ilmu komputer (terikat ke Windows) PyrRun (pengembangan kepemilikan tanpa penjelasan prinsip operasi).

Pada tahap pengembangan saat ini, PyOxidizer telah mengimplementasikan fungsi utama untuk menghasilkan file yang dapat dieksekusi untuk Windows, macOS dan Linux. Dari peluang yang saat ini tidak tersedia dirayakan kurangnya lingkungan build standar, ketidakmampuan untuk menghasilkan paket dalam format MSI, DMG dan deb/rpm, masalah dengan proyek pengemasan yang mencakup ekstensi kompleks dalam bahasa C, kurangnya perintah untuk mendukung pengiriman (“pyoxidizer add”, “pyoxidizer analysis” dan “pyoxidizer upgrade” ), dukungan terbatas untuk Terminfo dan Readline, kurangnya dukungan untuk rilis selain Python 3.7, kurangnya dukungan untuk kompresi sumber daya, ketidakmampuan untuk melakukan kompilasi silang.

Sumber: opennet.ru

Tambah komentar