Python プロジェクトを自己完結型の実行可能ファイルにパッケージ化するための PyOxidizer のリリース

から提出された ユーティリティの最初のリリース 酸化剤を使用すると、Python のプロジェクトを自己完結型の実行可能ファイルの形式にパッケージ化できます。これには、Python インタープリターと、作業に必要なすべてのライブラリとリソースが含まれます。 このようなファイルは、Python ツールがインストールされていない環境でも、必要な Python のバージョンに関係なく実行できます。 PyOxidizer は、システム ライブラリにリンクされていない、静的にリンクされた実行可能ファイルを生成することもできます。 プロジェクトのコードはRustで書かれており、 によって配布 MPL (Mozilla Public License) 2.0 に基づいてライセンスされています。

このプロジェクトは、同じ名前の Rust 言語モジュールに基づいており、これを使用すると、Python インタープリタを Rust プログラムに埋め込んで、その中で Python スクリプトを実行できます。 PyOxidizer は現在、Rust アドオンの域を超え、自己完結型の Python パッケージを構築してより幅広いユーザーに配布するためのツールとして位置付けられています。 アプリケーションを実行可能ファイルとして配布する必要がない場合、PyOxidizer は、Python インタープリターと必要な拡張機能のセットを埋め込むために、任意のアプリケーションとリンクするのに適したライブラリを生成する機能を提供します。

エンド ユーザーにとって、プロジェクトを単一の実行可能ファイルとして配信すると、インストールが大幅に簡素化され、依存関係を選択する作業が不要になります。これは、たとえば、ビデオ エディターなどの複雑な Python プロジェクトにとって重要です。 アプリケーション開発者にとって、PyOxidizer を使用すると、さまざまなオペレーティング システム用のパッケージを作成するためにさまざまなツールを使用する必要がなく、アプリケーションの配信を整理する時間を節約できます。

提案されたアセンブリの使用はパフォーマンスにもプラスの効果をもたらします。PyOxidizer で生成されたファイルは、基本モジュールのインポートと定義が不要になるため、システム Python を使用する場合よりも高速に実行されます。 PyOxidizer では、モジュールはメモリからインポートされます。すべての組み込みモジュールはすぐにメモリにロードされ、ディスクにアクセスせずに使用されます)。 テストでは、PyOxidizer を使用した場合のアプリケーションの起動時間が約半分に短縮されました。

すでに存在する同様のプロジェクトの中には、次のようなものがあります。 Pyインストーラー (ファイルを一時ディレクトリに解凍し、そこからモジュールをインポートします)、 py2exe (Windows プラットフォームに関連付けられており、複数のファイルを配布する必要があります)、 py2app (macOS に関連付けられています)、 CXフリーズ (個別の依存関係パッケージが必要)、 シブ и PEX (zip 形式でパッケージを形成し、システム上に Python が必要です)、 ヌイトカ (インタプリタを埋め込むのではなくコードをコンパイルします)、 ピンシスト (Windows に関連付けられています) ピラン (動作原理の説明のない独自開発)。

開発の現段階で、PyOxidizer は Windows、macOS、Linux 用の実行可能ファイルを生成するための主要な機能をすでに実装しています。 現在利用できない機会から 注目 標準のビルド環境の欠如、MSI、DMG、および deb/rpm 形式でパッケージを生成できないこと、C 言語の複雑な拡張機能を含むプロジェクトのパッケージ化に関する問題、配信をサポートするコマンドの欠如 (「pyoxydizer add」、「pyoxyizeranalyze」)および「pyoxydizer アップグレード」)、Terminfo と Readline のサポートの制限、Python 3.7 以外のリリースのサポートの欠如、リソース圧縮のサポートの欠如、クロスコンパイルの不能。

出所: オープンネット.ru

コメントを追加します