PyOxidizer, sebuah utilitas untuk mengemas proyek Python ke dalam file yang dapat dieksekusi

PyOksidator

Beberapa hari yang lalu pengembang memperkenalkan versi pertama utilitas PyOxidizer, yang ditawarkan sebagai sebuah utilitas yang dapat digunakan untuk mengemas proyek Python sebagai file terpisah yang dapat dieksekusi, termasuk penerjemah Python dan semua pustaka dan sumber daya yang diperlukan.

File tersebut dapat dijalankan di lingkungan tanpa toolkit Python diinstal atau terlepas dari ketersediaan versi Python yang diperlukan.

PyOxidizer juga dapat menghasilkan executable terkait secara statis yang tidak terkait dengan pustaka sistem. Kode proyek ditulis dalam bahasa Rust dan didistribusikan di bawah MPL (Lisensi Publik Mozilla) 2.0.

Tentang PyOxidizer?

Proyek didasarkan pada modul dengan nama yang sama untuk bahasa Rust, yang memungkinkan Anda untuk menyematkan juru bahasa Python di program Rust untuk menjalankan skrip Python di dalamnya.

PyOksidator sekarang telah melampaui plugin untuk Rust dan diposisikan sebagai alat yang tersedia untuk audiens yang lebih luas untuk membangun dan mendistribusikan paket Python mandiri.

PyOxidizer sebuah utilitas yang bertujuan untuk memecahkan masalah bagaimana mendistribusikan aplikasi Python.

Bagi mereka yang tidak perlu mendistribusikan aplikasi dalam bentuk file yang dapat dieksekusi, PyOxidizer menawarkan peluang untuk menghasilkan pustaka yang sesuai untuk ditautkan dengan aplikasi apa pun untuk menyematkan interpreter Python dan kumpulan ekstensi yang diperlukan di dalamnya.

Distribusi aplikasi Python umumnya dianggap sebagai masalah yang belum terpecahkan karena Russel Keith-Magee mengidentifikasi distribusi kode sebagai ancaman eksistensial untuk umur panjang, untuk Python. Dalam kata-katanya, Python tidak pernah memiliki riwayat yang konsisten tentang bagaimana saya memberikan kode saya kepada orang lain, terutama jika orang tersebut bukan pengembang dan hanya ingin menggunakan aplikasi saya.

Untuk pengguna akhir, mengirimkan proyek dalam bentuk satu file yang dapat dijalankan Ini sangat menyederhanakan instalasi dan menghilangkan pekerjaan pemilihan dependensi, yang penting, misalnya, untuk proyek Python yang kompleks seperti editor video.

Sedangkan di sisi lain Untuk pengembang aplikasi, PyOxidizer memungkinkan mereka menghemat waktu mengatur pengiriman aplikasi tanpa harus menggunakan alat yang berbeda untuk membuat paket untuk sistem operasi yang berbeda.

Bagaimana cara kerja PyOxidizer?

Menggunakan bangunan yang diusulkan itu juga memiliki efek positif pada kinerja: file yang dihasilkan di PyOxidizer berjalan lebih cepat daripada menggunakan sistem Python dengan menghapus impor dan mendefinisikan modul dasar.

Di PyOxidizer, modul diimpor dari memori (Semua modul built-in segera dimuat ke memori dan kemudian digunakan tanpa akses disk). Dalam pengujian, waktu startup aplikasi dengan PyOxidizer kira-kira setengahnya.

Dari proyek serupa yang ada, dimungkinkan untuk mengamati: PyInstaller (membongkar file ke direktori sementara dan mengimpor modul darinya).

  • Py2exe (ditautkan ke platform Windows dan membutuhkan banyak distribusi file), py2app (ditautkan ke macOS)
  • Cx-freeze (membutuhkan paket dependensi terpisah), Shiv dan PEX (membentuk paket zip dan membutuhkan Python pada sistem)
  • Nuitka (mengkompilasi kode, bukan penerjemah tertanam), pynsist (ditautkan ke Windows), PyRun (pengembangan berpemilik tanpa penjelasan tentang prinsip-prinsip operasi).

Pada tahap perkembangan saat ini, PyOxidizer telah mengimplementasikan fungsi utama untuk menghasilkan file yang dapat dijalankan untuk Windows, macOS, dan Linux.

Dari kapabilitas yang menjangkau jauh, dicatat tidak adanya lingkungan kompilasi standar, ketidakmampuan untuk menghasilkan paket dalam format MSI, DMG dan deb / rpm, dengan masalah pengemasan untuk proyek yang melibatkan ekstensi kompleks ke bahasa C.

Sementara tidak adanya instruksi untuk mendukung rilis ("pyoxidizer add", "pyoxidizer analysis" dan "pyoxidizer upgrade") dan dukungan terbatas untuk Terminfo dan Readline, kurangnya dukungan untuk versi selain Python 3.7, kurangnya dukungan untuk kompresi sumber daya, ketidakmampuan untuk mengkompilasi silang.

sumber: https://pyoxidizer.readthedocs.io


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.