質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

317閲覧

Pyinstallerで作ったexeファイルが実行できない

z1_n

総合スコア1

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2024/09/11 10:55

実現したいこと

Pyinstallerで作ったexeファイルにアイコンを指定したい

発生している問題・分からないこと

VSCodeにてPyinstallerを使いexeファイルを作りました。(アイコンを指定するコードも記入済み)
VSCode上ではアプリの実行ができ、アイコンもしていできているのですが、exeファイル側ではアプリの起動ができません。

エラーメッセージ

error

1Traceback (most recent call last): 2 File "main.py", line 19, in <module> 3 File "customtkinter\windows\ctk_tk.py", line 232, in iconbitmap 4 File "tkinter\__init__.py", line 2154, in wm_iconbitmap 5_tkinter.TclError: bitmap "C:\Users\user\AppData\Local\Temp\_MEI780922\data/icon.ico" not defined 6[PYI-80544:ERROR] Failed to execute script 'main' due to unhandled exception! 7[PYI-80544:DEBUG] LOADER: ERROR. 8[PYI-80544:DEBUG] LOADER: manually flushing stdout and stderr... 9[PYI-80544:DEBUG] LOADER: cleaning up Python interpreter...

該当のソースコード

Python

1main.py 2 3from pathlib import Path 4 5 appdir = Path(__file__).parent 6 iconfile = appdir / "icon.ico" 7 root.iconbitmap(iconfile) 8   (rootはCustomTkinter)

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ネットなどで調べ、Pathをraw文字列にしたり、
アイコンのPathを変えたり(data/icon.ico から icon.icoへ)、
アイコンを設定するコード自体を変えたりしました。
しかし、exeファイル化はできるのですが、上記のようなエラーを吐いてしまいます。

補足

Python 3.12.4
Pyinstaller 6.10.0

コード全体はCustomTkinterを使用

Windows11 64bit
Visual Studio Codeにてコーディング

以下のコードでexeファイルにしました
Pyinstaller main.py --onefile --debug all --icon=icon.ico

アイコン画像はexeファイル化したファイルと同じ階層にあります。

エラーの出るコードを消すと、アプリ自体はしっかり動作します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows 11、Python 3.12.4で確認しました。

pyinstallerのオプションに以下を追加してください。

--add-data "icon.ico;."

仮に変更前のようにdata配下にicon.icoを置いたなら、以下の通りにしてください。
(この場合は、ソースも"data/icon.ico"に変更します)

--icon=./data/icon.ico --add-data "./data/icon.ico;data"

検証用ソース

import tkinter from pathlib import Path root = tkinter.Tk() appdir = Path(__file__).parent iconfile = appdir / "icon.ico" root.iconbitmap(iconfile) root.mainloop()

投稿2024/09/11 11:44

編集2024/09/11 11:52
hiroki-o

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

z1_n

2024/09/12 10:33

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問