Pengeluaran PyOxidizer untuk membungkus projek Python ke dalam boleh laku serba lengkap

Dikemukakan oleh keluaran pertama utiliti PyOxidizer, yang membolehkan anda membungkus projek dalam Python ke dalam bentuk fail boleh laku serba lengkap, termasuk penterjemah Python dan semua perpustakaan serta sumber yang diperlukan untuk kerja itu. Fail sedemikian boleh dilaksanakan dalam persekitaran tanpa alat Python dipasang atau tanpa mengira versi Python yang diperlukan. PyOxidizer juga boleh menjana fail boleh laku terpaut secara statik yang tidak dipautkan ke perpustakaan sistem. Kod projek ditulis dalam Rust dan diedarkan oleh berlesen di bawah MPL (Mozilla Public License) 2.0.

Projek ini berdasarkan modul bahasa Rust dengan nama yang sama, yang membolehkan anda membenamkan penterjemah Python ke dalam program Rust untuk menjalankan skrip Python di dalamnya. PyOxidizer kini telah melampaui menjadi alat tambah Rust dan diletakkan sebagai alat untuk membina dan mengedarkan pakej Python serba lengkap kepada khalayak yang lebih luas. Bagi mereka yang tidak perlu mengedarkan aplikasi sebagai fail boleh laku, PyOxidizer menyediakan keupayaan untuk menjana perpustakaan yang sesuai untuk dipautkan dengan mana-mana aplikasi untuk membenamkan penterjemah Python dan set sambungan yang diperlukan.

Bagi pengguna akhir, menyampaikan projek sebagai fail boleh laku tunggal sangat memudahkan pemasangan dan menghapuskan kerja memilih kebergantungan, yang penting, sebagai contoh, untuk projek Python yang kompleks seperti editor video. Untuk pembangun aplikasi, PyOxidizer membolehkan anda menjimatkan masa mengatur penghantaran aplikasi, tanpa perlu menggunakan alat yang berbeza untuk mencipta pakej untuk sistem pengendalian yang berbeza.

Penggunaan perhimpunan yang dicadangkan juga mempunyai kesan positif ke atas prestasi - fail yang dijana dalam PyOxidizer berjalan lebih cepat daripada semasa menggunakan Python sistem kerana penghapusan import dan definisi modul asas. Dalam PyOxidizer, modul diimport dari memori - semua modul terbina dalam segera dimuatkan ke dalam memori dan kemudian digunakan tanpa mengakses cakera). Dalam ujian, masa pelancaran aplikasi apabila menggunakan PyOxidizer dikurangkan kira-kira separuh.

Antara projek serupa yang sedia ada, perkara berikut boleh diambil perhatian: PyInstaller (membuka fail ke dalam direktori sementara dan mengimport modul daripadanya), py2exe (terikat pada platform Windows dan memerlukan berbilang fail untuk diedarkan), py2app (terikat dengan macOS), cx-beku (memerlukan pembungkusan pergantungan berasingan), Shiv ΠΈ PEX (bentuk pakej dalam format zip dan memerlukan Python pada sistem), Nuitka (menghimpun kod daripada membenamkan penterjemah), pynsist (terikat pada Windows) PyRun (pembangunan proprietari tanpa penjelasan prinsip operasi).

Pada peringkat pembangunan semasa, PyOxidizer telah pun melaksanakan fungsi utama untuk menjana fail boleh laku untuk Windows, macOS dan Linux. Daripada peluang yang tidak tersedia pada masa ini tercatat kekurangan persekitaran binaan standard, ketidakupayaan untuk menjana pakej dalam format MSI, DMG dan deb/rpm, masalah dengan projek pembungkusan yang merangkumi sambungan kompleks dalam bahasa C, kekurangan arahan untuk menyokong penghantaran ("tambah pyoxidizer", "analisis pyoxidizer" dan β€œpeningkatan pyoxidizer” ), sokongan terhad untuk Terminfo dan Readline, kekurangan sokongan untuk keluaran selain Python 3.7, kekurangan sokongan untuk pemampatan sumber, ketidakupayaan untuk menyusun silang.

Sumber: opennet.ru

Tambah komen