PyRun:一款極致輕量,單文件 Python 運行時利器

近年來,Python 憑藉其易用性和強大的庫生態系統,在各個領域都取得了顯著的成功。然而,Python 應用的部署常常會面臨體積龐大、依賴複雜的問題。eGenix PyRun 應運而生,它是一個開源的、壓縮的、單文件 Python 兼容運行時環境,完美解決了這一痛點。本文將深入探討 PyRun 的特性、使用方法。

超小體積,部署便捷

PyRun 最顯著的特徵是其極小的體積。它僅佔用 5-6MB 的磁盤空間,這對於需要輕量化部署的場景,例如嵌入式系統、服務器端微服務,以及 Docker 容器化應用,都具有巨大的優勢。相比之下,標準的 CPython 發行版動輒數百兆,PyRun 的體積優勢不言而喻。如此小的體積是通過將大部分 Python 標準庫直接凍結到二進制文件中,靜態編譯大部分標準庫的 C 擴展,去除調試信息以及使用 UPX 壓縮器對生成的二進制文件進行壓縮等一系列優化措施實現的。PyRun 不同 Python 版本大小如下:

支持的 Python 版本及構建方法

目前,PyRun 積極支持以下 Unix 平臺上的 Python 版本:3.8、3.9、3.10、3.11 和 3.12。對於每個版本,僅支持一個補丁級別版本,因爲 PyRun 需要對 Python 源代碼進行修補,以實現其兼容性擴展。PyRun 通常會在 Python 版本生命週期結束(不再接收安全更新)後移除對該版本的支持。

構建 PyRun 需要一些依賴庫,例如 libbz2-devel、sqlite3-devel、openssl-devel、zlib-devel 和 upx 等。Makefile 提供了多種構建目標,包括構建所有支持的 Python 版本 (make build-all),創建發行版文件 (make all-distributions),以及針對特定 Python 版本構建 (make distribution PYTHONFULLVERSION=3.11.9)。此外,還提供了開發構建目標 (make dev-build) 和發佈構建目標 (make release-distributions),分別用於快速構建和優化性能的構建。

測試與安裝

PyRun 提供了豐富的測試目標,包括基本功能測試 (make test-basic),pip 包測試 (make test-pip),以及針對所有支持的 Python 版本的測試 (make test-all-distributions) 等。需要注意的是,由於 PyRun 的工作方式,部分測試可能會失敗,例如嵌入到 Python 包中的文件在凍結到 PyRun 二進制文件時不可用。

PyRun 的安裝非常簡便,無需複雜的安裝過程。可以從發行版檔案中解壓縮 (tar xfz egenix-pyrun-py3.11_ucs4-linux-x86_64.tgz),也可以從源碼構建並安裝到指定目錄 (make install),甚至可以直接複製pyrunX.X二進制文件到應用目錄使用。

總結

eGenix PyRun 憑藉其極小的體積、易於部署和豐富的功能,爲 Python 應用的部署提供了一個全新的解決方案。它不僅能夠顯著減少應用的體積,簡化部署流程,而且還提供了良好的兼容性和擴展性。隨着項目的持續發展和社區的參與,PyRun 必將成爲 Python 開發者手中的一大利器。

項目地址:https://github.com/eGenix/egenix-pyrun

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/OG_cD8y4t5cDQuVlUQ4cQg