託送アドバイザー&OA業務PCツール開発コンサルティング
IT products LaBo
ITツール企画研究所 by Inspire Volt
|Python言語プログラムのexe化にあたって
初学習時代、自身で開発したプログラムを別のユーザーへ配布するにあたって当初、PyInstallerを使用してexe化していました。
なぜかと言うと、ネット検索で「python」「exe化」を検索すると圧倒的にPyInstallerによるexe化の解説記事やインストールから
使い方まで説明したHowToが数多くヒットするからです。
それだけ、簡単に使えて便利で初心者にもオススメということなのですが、実は悪質なウイルスソフトの開発にも便利だったようで
いくつかのセキュリティソフト・サービスではPyInstallerを使用されて作成されたexeファイルは問答無用でウイルス認定しファイルや
フォルダごと削除されてしまうということが起こり得ます。筆者作のプログラムも冤罪削除を大量に経験しました・・・
PyInstaller以外のexe化の手段としてNituka、py2exe、py2app、PyOxidizer、cx_Freeze、bbfreezeなどが代替候補になります。
結論から言いますと筆者は色々と試行錯誤の末、cx_Freezeに行き着きました。
|cx_Freezeの選定理由
・コンパイルの所要時間短め
・組み込みたいモジュールと対応するモジュールのマッチ度
・試したセキュリティの中で比較的ひっかかりにくく、ウイルス誤検知に強い
|cx_Freeze
調べると20年以上の実績がある手法のようでバージョンも多く用意されています。
詳細は公式ドキュメンテーションを確認ください。
自身のPython環境に合ったバージョンを利用する必要がありますが、ともあれインストールしてみないことには始まりませんので
次のコードをコマンドプロンプト内で入力してpipからインストールします
バージョンが合わなければ 「pip install –upgrade cx_Freeze==〇.〇」でバージョンを入れ替えてみて下さい
どれだけバージョンが有るかわからないときは「pip install –upgrade cx_Freeze==」までで一旦、Enterしエラーを吐かせてみればバージョン数が羅列されます
さて、コンパイル実行するときですが「cx_Freeze」をネットで検索すると多くのサイトで、まずセットアップスクリプト(setup.py)を作りましょう
と紹介されていますが、ここで挫折してcx_Freezeの使用を諦めてしまう方がかなり多くいるのではないかと思います。(筆者も大ハマりした経験があります)
実は・・セットアップファイルは作らずとも十分にPyInstallerのように簡単にexe化ができます
次のコードをコマンドプロンプト内で入力すると新しく作られるdistフォルダ内に作成されます
※注意としてコマンドプロンプトにコード入力する際、対象のpyファイルがおいてあるディレクトリまで移動してから実行してください。アイコンに使う.ico写真データも同じ場所に配置しておくようにしてください
ちなみにコマンドプロンプトによるディレクトリの移動は「cd /d C:\Users\あなたのユーザー名\Documents\python」といった具合で絶対参照移動が楽です
コンパイルがうまく行けばコマンドプロンプト内でsuccessfullyの文字とともに
C:\Users\あなたのユーザー名\Documents\python\dist が作られ、中には他PCに配布して使える状態のアプリができています。
アイコンを設定していれば、アイコンの付いた.exeファイルがありますのでダブルクリックで起動できます
それにしてもcx_Freezeについて他サイトの日本語での紹介があまりにも数少ないです・・・
ここまでの解説でもコンパイル失敗だった方、弊社のフリープランもしくはトライアルプランでご相談承っておりますのでお越しください
「もう挫折したから作ってくれ」という方も大歓迎でございます
それではマハロ、グッバーイ
筆者 InspireVolt代表 大島 凌