はじめに
Pythonで作ったGUIアプリ、家族や同僚、クライアントにも使ってもらいたい…そう思ったことはありませんか?
でも「Pythonがインストールされてないと動かないんじゃないの?」という不安、ありますよね。
そんなときに活躍するのが、**PyInstaller(パイインストーラー)**というツールです。
これを使えば、PythonコードをWindowsの実行可能ファイル(.exe)に変換できるので、他の人がPythonをインストールしていなくてもアプリを使ってもらえるようになります。

Pythonで作ったアプリ、他の人にも使ってもらいたいと思ったことありませんか?
PyInstallerを使えば、Pythonが入っていないパソコンでも動くEXEファイルに変換できます。
初心者の方でも迷わずできるよう、手順とエラー対策をわかりやすくまとめました
EXEファイルに変換するメリット
- Pythonが入っていないPCでも動く
- ダブルクリックで簡単に起動できる
- プログラムの中身(コード)を直接見られにくい
- 配布がしやすくなる(USB、メール、クラウド経由など)
とくにPySide6で作ったGUIアプリは、ウィンドウがあって使いやすい分、配布しやすい形式にしておくことで一気に実用度が上がります。
この記事でできること
このブログ記事では、以下の流れでPySide6アプリをEXEファイルに変換する方法を、初心者にもわかりやすく解説していきます。
- PyInstallerのインストールと準備
- PySide6アプリをEXE化する手順(コマンド例つき)
- よくあるエラーとその対処法
- 他のPCへの配布と動作確認のポイント
また、コマンドオプションの意味や、アイコン設定、ウィンドウの非表示設定など、よく使われるカスタマイズについても触れます。
こんな方におすすめ
- PySide6で作ったGUIアプリを「他の人にも使ってほしい」と思っている方
- EXEファイルに変換して配布してみたい初心者
- PyInstallerの使い方を基礎から学びたい方
「自分で作ったアプリが、Pythonなしでも誰かのPCで動く」
その感動を、ぜひ一緒に体験してみましょう!
使用環境と事前準備
この章では、PyInstallerを使ってPySide6アプリをEXEファイルに変換するために必要な環境の整備とツールのインストール方法について解説します。
事前準備が整っていれば、EXE化の作業はとてもスムーズに進みます。
使用環境(執筆時点)
以下のバージョンで動作確認を行っています:
- OS:Windows 11(※Windows 10でも可)
- Python:3.11.5
- PySide6:6.6.1
- PyInstaller:6.6.0
※ macOSやLinuxでもPyInstallerは使用可能ですが、そのOS用の実行ファイルしか作れません。
Windowsで配布するなら、Windows上でEXEを作るのが基本です。
Python仮想環境の利用(推奨)
実行ファイルに不要な依存ライブラリを含めないためにも、仮想環境で開発・変換作業を行うことを強くおすすめします。
仮想環境の作成例
python -m venv venv有効化(Windowsの場合)
venv\Scripts\activate仮想環境については以下の記事の「Pythonで仮想環境を作成しよう」も参考にしてください。
ライブラリのインストール
仮想環境を有効化した状態で、PySide6とPyInstallerをインストールします。
pip install pyside6 pyinstallerそれぞれのインストールが正しく行われたか確認しましょう。
python -m pip show pyinstaller
python -m pip show pyside6問題がなければ、次の章で実際のアプリを用意し、EXEファイル化の作業に移ります。
注意点:ファイルパスとフォルダ構成
- 日本語やスペースが入ったフォルダ名はトラブルの元になります。できるだけ英数字のみのパスを使いましょう。
- .py ファイルと関連リソース(画像やUIファイルなど)は同じフォルダ内にまとめておくと管理がラクです。
PySide6アプリの準備
この章では、PyInstallerでEXEファイルに変換するために必要なPySide6アプリの構成と作り方について説明します。
ここでは変換の動作確認に使うため、できるだけシンプルなウィンドウアプリを用意します。
最小構成のPySide6アプリを作る
まずは、main.py という名前で以下のようなコードを保存してください:
import sys
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("PySide6 EXE変換テスト")
self.setGeometry(100, 100, 300, 200)
label = QLabel("こんにちは、PySide6!")
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())コードのポイント
- QWidget を継承したウィンドウを作成
- QLabel を表示して「動作している」ことがわかりやすい構成
- QApplication → ウィンドウ生成 → 表示 → イベントループ実行 という典型的な流れ
このような構成なら、PyInstallerでの変換にも適しており、余計な依存関係がなく動作確認しやすいです。
フォルダ構成(例)
your_project/
├─ main.py複雑なUIファイルや画像などがある場合は、あとで追加してもOKですが、まずはこのようなシンプル構成で変換の仕組みを把握することが大切です。
PyInstallerでEXEファイルを作成する手順
ここでは、前章で用意したPySide6アプリをPyInstallerを使ってWindowsの実行可能ファイル(.exe)に変換する具体的な方法を解説します。
コマンドはシンプルですが、オプションの使い方を知っておくとより便利にカスタマイズできます。
基本のコマンド
仮想環境を有効にした状態で、以下のコマンドを実行します:
pyinstaller main.pyこれだけで、dist/ フォルダに main/ というフォルダが生成され、その中に main.exe が作成されます。
フォルダの中身(例)
dist/
└─ main/
├─ main.exe
├─ Qt関連のDLLやデータフォルダ
└─ その他の必要ファイルこの状態で main.exe をダブルクリックすれば、GUIアプリが起動するはずです。

よく使うオプション一覧
単一ファイルにまとめる(–onefile)
pyinstaller --onefile main.py→ dist/main.exe という1つのファイルだけが生成されます。配布に便利ですが、起動に少し時間がかかる場合もあります。
コンソールウィンドウを非表示に(–noconsole)
pyinstaller --onefile --noconsole main.py→ GUIアプリなのに「黒いコマンドプロンプト」が開くのを防げます。
アイコンファイルを設定する(–icon)
pyinstaller --onefile --noconsole --icon=icon.ico main.py→ .ico 形式のファイルを用意して指定すると、EXEに独自のアイコンを付けることができます。
.specファイルで細かく制御する(上級者向け)
初回ビルド時に main.spec というファイルが自動生成されます。
これを編集することで、データファイルの同梱や特殊な設定が可能です。
ただし初心者のうちは、基本のコマンド+オプションだけで十分です。慣れてから手を出しても遅くありません。
実行ファイルの確認
ビルドが完了したら、以下を確認しておきましょう:
- dist/main/main.exe(または dist/main.exe)が存在しているか
- ダブルクリックで起動するか(セキュリティ警告が出る場合もあり)
- 「こんにちは、PySide6!」のウィンドウが表示されるか
ここまでうまくいけば、PyInstallerによるEXE化は成功です!

よくあるエラーと対処法
PyInstallerを使ってEXEファイルを作成する際には、環境やコードによってさまざまなエラーや警告に遭遇することがあります。
ここでは、初心者が特につまずきやすい問題とその対処法をまとめました。
DLL関連のエラー
エラー例:
Failed to execute script 'main' due to unhandled exception...
qt6gui.dll or other Qt related .dll not found原因と対処:
- PyInstallerがQt関連のDLLファイルを正しくバンドルできていない
- 対処法:
- –add-binary オプションを使って明示的にDLLを追加する
- あるいは .spec ファイルを編集して必要なパスを追加
PySide6はQt内部で多くのDLLを使っているため、動的ライブラリの読み込み失敗が頻発しやすいです。
まずは –onedir 形式で試すと原因切り分けがしやすくなります。
モジュールが見つからない(import error)
エラー例:
ModuleNotFoundError: No module named 'PySide6.QtWidgets'原因と対処:
- 仮想環境で必要なライブラリがインストールされていない
- 対処法:
- 変換用の仮想環境で pip install pyside6 を再確認
- コマンドを実行するディレクトリが間違っていないかチェック
また、PyInstallerは動的インポートに弱いことがあります。importlib などを使っているときは注意が必要です。
GUIが表示されない、黒いウィンドウだけ
症状:
- main.exe を起動しても何も表示されない
- 画面が一瞬出てすぐに閉じる
原因と対処:
- –noconsole オプションをつけている場合、例外が起きてもエラーメッセージが見えません
- 対処法:
- 一度 –console でビルドして、エラー内容を確認する
- ログ出力(print())を一時的に残して挙動を観察
antivirusによる誤検知・削除
現象:
- 作ったばかりのEXEが自動的に削除される
- 「ウイルスの可能性があります」と表示される
原因と対処:
- PyInstaller製のEXEファイルは、自己展開や暗号化などの仕組みから一部のセキュリティソフトで誤検知されることがあります。
- 対処法:
- Windows Defenderなどの一時的な除外設定
- 配布時にはインストーラー形式やコード署名を検討
icon.icoに関するエラー
エラー例:
I/O error: icon.ico is not a valid ICO file原因と対処:
- .ico ファイルが壊れている、もしくはサイズが適していない
- 対処法:
- サイズ:256×256 や 32×32 の正方形推奨
- 変換サイトで .png → .ico に変換して使う
これらのエラーに出会っても、あなただけではありません。むしろ「あるある」です。
丁寧にひとつずつ原因を調べていけば、きっと解決できます。
配布と実行のチェックポイント
PyInstallerでEXEファイルが無事にできたら、次はそれを他のPCでも動かせるように配布する段階です。
ただし、Pythonのコードと違って実行ファイルにはOSの制約やセキュリティ上の壁があります。
ここでは、配布や実行にあたって押さえておくべき大切なポイントを解説します。
他のPCでの実行確認
チェックポイント:
- 同じWindowsバージョンで動くか(例:Windows 10 と 11)
- PythonがインストールされていないPCで問題なく起動するか
- 依存ファイル(DLLやQt系リソース)も正しく含まれているか
💡 –onefile オプションで作成した場合でも、起動時に一時的に展開されるため、一部のウイルス対策ソフトが反応することがあります。
セキュリティ警告への対応
よくある現象:
- 「WindowsによってPCが保護されました」
- 「不明な発行元」として警告される
対処法:
- 信頼できる配布元であることをユーザーに明記
- 本格的に配布するなら**コード署名(デジタル署名)**の導入を検討
- 開発段階では、実行ファイルに署名は必須ではありませんが、配布時は信頼性が大事です
配布形式の工夫
単体EXE配布 vs インストーラー形式
| 方法 | メリット | デメリット |
|---|---|---|
| EXE単体 | 軽量、すぐ配布できる | セキュリティ警告が出やすい |
| インストーラー | 複数ファイル対応、見た目が丁寧 | 作成に一手間かかる |
おすすめツール:
- Inno Setup:無料で使えるWindowsインストーラー作成ツール
- NSIS:シンプルなインストーラーを作りたい人向け
実行ファイルの軽量化・最適化
ヒント:
- .exe ファイルが大きすぎると配布しにくい
- –onefile でも 50〜100MB 程度になるのは珍しくありません
- UPX(Ultimate Packer for Executables) を使って圧縮することも可能
pyinstaller --onefile --noconsole --upx-dir=C:\path\to\upx main.py⚠️ 圧縮しすぎると逆に起動が不安定になることもあるため、テストは必須です。
まとめと次のステップ
ここまで、PyInstallerを使ってPySide6アプリをEXEファイルに変換する方法を、初心者の方でも理解しやすいように丁寧に解説してきました。
Pythonで作ったアプリが、Pythonなしでも動く実行形式になる感動を、きっと感じていただけたのではないでしょうか?
今回の内容を振り返り
- PyInstallerの基本と仮想環境の準備方法
- PySide6アプリをEXE形式に変換するコマンドとオプション
- EXE化時によくあるエラーとその対処法
- 作ったEXEを他のPCでも安全に配布・実行するポイント
GUIアプリ開発に取り組むなら、「作って終わり」ではなく、「誰かに使ってもらう」ことこそが最終目標。
そのための第一歩が、今回のEXE化です。
次のステップでさらに実力アップ
🔸 アプリをインストーラー形式で配布する
- Inno SetupやNSISを使ったセットアップウィザード作成に挑戦
🔸 コード署名を行って信頼性を高める
- 商用利用やクライアント納品にも耐えられる形式に
🔸 データ保存や設定ファイルの扱いを学ぶ
- SQLiteやJSONとの連携で、より高度なGUIアプリへ
🔸 MacやLinuxでのビルド方法を知る(OSごとに対応が必要)
関連記事のご紹介
PyInstallerの活用とあわせて、以下の内容にも挑戦してみましょう:
おわりに
自分が作ったPythonアプリが「誰かのPCでダブルクリックひとつで動く」――
これは学習者にとって大きなモチベーションになります。
この記事が、あなたの**「配布できるアプリ作り」への第一歩**になれば嬉しいです。

ここまで読んでいただきありがとうございます!
UdemyのPythonコースにはオンラインで学習ができる動画コンテンツがたくさんあります。
当ブログのような文章メインの説明では足りない箇所を補えると思うので、もっと詳しく勉強したいという方はぜひチェックしてみてください!





コメント