PyOxidizer一個實用程序,用於將Python項目打包到可執行文件中

高溫氧化劑

幾天之前 開發人員介紹了PyOxidizer實用程序的第一個版本,以 可用於將Python項目打包為單獨的可執行文件的實用程序,包括Python解釋器以及所有必需的庫和資源。

這樣的文件可以在沒有安裝Python工具包的環境中運行,或者與所需的Python版本無關。

PyOxidizer也可以生成與系統庫不相關的靜態相關的可執行文件。 項目代碼以Rust語言編寫,並根據MPL(Mozilla公共許可證)2.0分發。

關於PyOxidizer?

該項目 基於與Rust語言同名的模塊,它允許您將Python解釋器嵌入Rust程序 在它們上運行Python腳本。

高溫氧化劑 現在,它已經超出了Rust的插件範圍,並被定位為更廣泛的受眾可用的工具,用於構建和分發獨立的Python包。

PyOxidizer一個實用程序,旨在解決如何分發Python應用程序的問題。

對於那些不需要以可執行文件形式分發應用程序的人,PyOxidizer提供了機會來生成合適的庫,以與任何應用程序鏈接以將Python解釋器及其必要的擴展集嵌入其中。

Russel Keith-Magee將Python的應用程序分發普遍認為是未解決的問題,因為Russel Keith-Magee將代碼分發視為對Python壽命的生存威脅。 用他的話說,Python從來沒有關於如何將我的代碼提供給其他人的一致的歷史,特別是如果該其他人不是開發人員而只想使用我的應用程序時。

對於最終用戶,以單個可執行文件的形式交付項目 它極大地簡化了安裝並消除了選擇依賴項的工作,這對於例如視頻編輯器之類的複雜Python項目而言非常重要。

另一方面 對於應用程序開發人員而言,PyOxidizer使他們可以節省組織應用程序交付的時間 無需使用不同的工具來為不同的操作系統創建程序包。

PyOxidizer如何工作?

使用建議的構建 它也對性能產生積極影響: 通過刪除導入並定義基本模塊,PyOxidizer中生成的文件比使用Python系統運行得更快。

在PyOxidizer中 模塊從內存中導入 (所有內置模塊都立即加載到內存中,然後在沒有磁盤訪問的情況下使用)。 在測試中,使用PyOxidizer的應用程序啟動時間大約減少了一半。

從類似的現有項目中,可以觀察到: PyInstaller(將文件解壓縮到一個臨時目錄中並從中導入模塊)。

  • py2exe(鏈接到Windows平台,需要分發多個文件),py2app(鏈接到macOS)
  • Cx-freeze(需要單獨的依賴項包裝),Shiv和PEX(形成zip包並在系統上需要Python)
  • Nuitka(編譯代碼,而不是嵌入式解釋器),pynsist(鏈接到Windows),PyRun(專有開發,不解釋操作原理)。

在目前的發展階段, PyOxidizer已經實現了主要功能,可以為Windows,macOS和Linux生成可執行文件。

在影響深遠的功能中指出,沒有標準的編譯環境,無法生成MSI,DMG和deb / rpm格式的程序包,並且存在涉及C語言複雜擴展的項目打包問題。

儘管缺少支持該版本的說明(“ pyoxidizer添加”,“ pyoxidizer分析”和“ pyoxidizer升級”),並且對Terminfo和Readline的支持有限,但缺少對Python 3.7以外版本的支持,對資源壓縮的支持,無法交叉編譯。

來源: https://pyoxidizer.readthedocs.io


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。