MagicLock vs PyInstaller — 保護とパッケージング、そして併用
事実に基づく比較: PyInstaller が解決するのは配布であって保護ではありません。MagicLock の成果物はどこへ運ばれても暗号化されたままです — そして 2 つのツールは相性よく組み合わせられます。
PyInstaller は、Python アプリケーションを、ユーザーが Python をインストールせずに実行できる単一の実行ファイルへ変える標準的な方法です。成熟しており、無料で、その仕事を非常にうまくこなします。そして、自らが何ではないかも明言しています: 保護ツールではない、と。このページが存在するのは、この 2 つがしばしば混同されるからであり — そして実際には、併用すると相性が良いからです。
PyInstaller の優れている点
- インタプリタを同梱したワンファイル / ワンフォルダー配布 — 「.exe を送ればいい」という古典的な答えです。
- 幅広いエコシステム対応、扱いの難しいパッケージ向けのフック、クロスプラットフォームでの成熟度。
- 無料でオープンソース。
パッケージングは保護ではない
PyInstaller のバンドルはアーカイブです: アプリケーションの .pyc バイトコードがその中に入って出荷され、誰でも入手できるツールで数分のうちにバイトコードへ(さらにそこから、かなり読みやすいソースへ)展開できます。これは欠陥ではありません — PyInstaller はそもそも秘密を守るために設計されたものではなく、ドキュメントもそのような主張はしていません。ただしそれは、バンドルされたアプリの保護が、.py ファイルをそのまま出荷するのとおおよそ同程度である、ということを意味します。
MagicLock の成果物は、ファイルがどこへ運ばれても暗号化されたままです: PyInstaller のバンドルの中でも、USB メモリの上でも、顧客のバックアップの中でも。あなたが許可したデバイスの上でだけ動くプログラムになり、その検証は毎回の実行時に完全オフラインで行われます。
並べて比較
| 機能 | MagicLock | PyInstaller |
|---|---|---|
| エンドユーザー向けの単一実行ファイル | コンパイル版: スタンドアロンビルド | はい — まさに設計目標 |
| インタプリタの同梱 | コンパイル版: はい | はい |
| 出荷ファイルからのソース / バイトコード復元 | いいえ — 暗号化(.pya)またはモジュールごとにゲートを持つネイティブコード | はい — アーカイブは .pyc に展開可能 |
| デバイス固定ライセンス | 標準搭載 | —(目標ではない) |
| モデル / 資産の暗号化 | デバイスごとのエンベロープ | 平文のまま同梱 |
| 有効期限、トライアル、停止スイッチ | はい | — |
| 価格 | 商用 | 無料、オープンソース |
下記の日付時点の公開ドキュメントに基づきます。
組み合わせるとより良い
2 つのツールは異なるレイヤーを解決するため、きれいに組み合わせられます:
magiclock protectでモジュールを、magiclock protect-modelで重みを保護する — 保護レイヤー。- 保護したアプリをいつもどおり PyInstaller でパッケージする — 配布レイヤー。
バンドルは PyInstaller の手軽さを保ち、その中のコードとモデルは MagicLock の暗号化とデバイス紐付けを保ちます。あるいは magiclock build --standalone なら、自己完結したネイティブアプリのディレクトリを 1 ステップで生成します — 保護と配布を 1 つのコマンドで。
PyInstaller 単体のほうが合う場合
- 手軽な配布が必要で、保護やライセンスの要件がない — 社内ツール、無料ソフトウェア、信頼できる環境。
MagicLock を加えるべきとき
- 「誰でも展開できる」ことがビジネス上の問題になった瞬間: 有償ソフトウェア、シート単位のライセンス、プロプライエタリなモデル、期限付きのパイロット。
事実確認: 2026-08
製品名および商標は各社に帰属します。比較は公開ドキュメントに基づきます。機能はバージョンやエディションにより異なるため、各ベンダーの公式資料でご確認ください。