Phát hành PyOxidizer để đóng gói các dự án Python thành các tệp thực thi độc lập

giới thiệu bản phát hành đầu tiên của tiện ích PyOxy hóa, cho phép bạn đóng gói một dự án bằng Python thành dạng tệp thực thi độc lập, bao gồm trình thông dịch Python cũng như tất cả các thư viện và tài nguyên cần thiết cho công việc. Các tệp như vậy có thể được thực thi trong môi trường không cài đặt công cụ Python hoặc bất kể phiên bản Python được yêu cầu. PyOxidizer cũng có thể tạo các tệp thực thi được liên kết tĩnh không được liên kết với thư viện hệ thống. Mã dự án được viết bằng Rust và phân phối bởi được cấp phép theo MPL (Giấy phép Công cộng Mozilla) 2.0.

Dự án dựa trên mô-đun ngôn ngữ Rust cùng tên, cho phép bạn nhúng trình thông dịch Python vào các chương trình Rust để chạy các tập lệnh Python trong đó. PyOxidizer hiện đã vượt xa vai trò là một tiện ích bổ sung của Rust và đang được định vị là một công cụ để xây dựng và phân phối các gói Python độc lập cho nhiều đối tượng hơn. Đối với những người không cần phân phối ứng dụng dưới dạng tệp thực thi, PyOxidizer cung cấp khả năng tạo thư viện phù hợp để liên kết với bất kỳ ứng dụng nào để nhúng trình thông dịch Python và bộ tiện ích mở rộng cần thiết.

Đối với người dùng cuối, việc phân phối dự án dưới dạng một tệp thực thi duy nhất giúp đơn giản hóa đáng kể việc cài đặt và loại bỏ công việc chọn các phần phụ thuộc, điều này rất quan trọng, chẳng hạn như đối với các dự án Python phức tạp như trình chỉnh sửa video. Đối với các nhà phát triển ứng dụng, PyOxidizer cho phép bạn tiết kiệm thời gian tổ chức phân phối ứng dụng mà không cần sử dụng các công cụ khác nhau để tạo gói cho các hệ điều hành khác nhau.

Việc sử dụng các tập hợp được đề xuất cũng có tác động tích cực đến hiệu suất - các tệp được tạo trong PyOxidizer chạy nhanh hơn so với khi sử dụng Python hệ thống do loại bỏ việc nhập và định nghĩa các mô-đun cơ sở. Trong PyOxidizer, các mô-đun được nhập từ bộ nhớ - tất cả các mô-đun tích hợp sẽ được tải ngay vào bộ nhớ và sau đó được sử dụng mà không cần truy cập vào đĩa). Trong các thử nghiệm, thời gian khởi chạy ứng dụng khi sử dụng PyOxidizer giảm khoảng một nửa.

Trong số các dự án tương tự hiện có, có thể lưu ý những điều sau: Trình cài đặt Py (giải nén tệp vào một thư mục tạm thời và nhập các mô-đun từ nó), py2exe (gắn liền với nền tảng Windows và yêu cầu phân phối nhiều tệp), py2app (gắn liền với macOS), đóng băng cx (yêu cầu đóng gói phụ thuộc riêng), Shiv и PEX (tạo thành một gói ở định dạng zip và yêu cầu Python trên hệ thống), đêm (biên dịch mã thay vì nhúng trình thông dịch), người phân tích (gắn liền với Windows) PyRun (phát triển độc quyền mà không cần giải thích nguyên tắc hoạt động).

Ở giai đoạn phát triển hiện tại, PyOxidizer đã triển khai chức năng chính để tạo các tệp thực thi cho Windows, macOS và Linux. Từ những cơ hội hiện không có sẵn được tổ chức thiếu môi trường xây dựng tiêu chuẩn, không thể tạo các gói ở định dạng MSI, DMG và deb/rpm, các vấn đề với các dự án đóng gói bao gồm các phần mở rộng phức tạp bằng ngôn ngữ C, thiếu các lệnh để hỗ trợ phân phối (“pyoxidizer add”, “pyoxidizer analyze” và “nâng cấp pyoxidizer” ), hỗ trợ hạn chế cho Terminfo và Readline, thiếu hỗ trợ cho các bản phát hành không phải Python 3.7, thiếu hỗ trợ nén tài nguyên, không có khả năng biên dịch chéo.

Nguồn: opennet.ru

Thêm một lời nhận xét