🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PyInstaller

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

Q&A

1回答

696閲覧

python exe化実行できません。ご教授お願いします。

kuriyamasaikou

総合スコア8

PyInstaller

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

0グッド

0クリップ

投稿2021/02/16 05:04

下記コードをexe化して他のPCでも動作するようにしたいのですがexe化したあとにエラー出てしまい実行できません。
エラーはこちらになります。
Traceback (most recent call last):
File "kirito.py", line 22, in <module>
File "tkinter/init.py", line 4061, in init
File "tkinter/init.py", line 4006, in init
_tkinter.TclError: couldn't open "い.png": no such file or directory
[94725] Failed to execute script kirito
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

画像が参照できていないという事までは理解できたので調べましたが,どうしたら参照してくれるのかがわかりません。

ご教授お願いします。

python コード import tkinter KEKKA = ["アスナは寝取られました。","ニートです。","普通の人です。","少しイタイです。","友達にユージオいるでしょ。", "シノンあげます","背中に2本の剣が見えます。","黒の剣士です。"] def click_btn(): pts = 0 for i in range(7): if bvar[i].get() == True: pts = pts + 1 kiritodo = int(100*pts/7) text.delete("1.0",tkinter.END) text.insert("1.0","<診断結果>¥nあなたのキリト度は" + str(kiritodo) + "%です。¥n" + KEKKA[pts]) root = tkinter.Tk() root.title("キリト診断アプリ") root.resizable(False,False) canvas = tkinter.Canvas(root,width=800,height=800) canvas.pack() gazou = tkinter.PhotoImage(file="い.png") canvas.create_image(400,400,image=gazou) button =tkinter.Button(text="診断する",font=("Times New Roman",32),bg="green",command=click_btn) button.place(x=260,y=600) text = tkinter.Text(width=40,height=5,font=("Times New Roman",16)) text.place(x=260,y=165) bvar = [None]*7 cbtn = [None]*7 ITEM = ["アスナは俺の嫁","全身黒い服が好きだ","ユニークスキルを持っている","妹が剣道部","ネトゲがすきだ", "おれつえええええ","主人公補正かかっている"] for i in range(7): bvar[i] = tkinter.BooleanVar() bvar[i].set(False) cbtn[i] = tkinter.Checkbutton(text=ITEM[i], font=("Times New Roman",12),variable=bvar[i],bg="#dfe") cbtn[i].place(x=260,y=300+40*i) root.mainloop()

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

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

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

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

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

guest

回答1

0

MacOSですよね?
すると、pyinstallerではappの中にファイルを入れなくてはいけません。
(bundleは一度、tmpに展開されるようです。)
なので、pyinstallerの実行時に出てきたspecファイル内datasリストに
("[画像のパス]", ".")を追加、
で、コードの最初の方に

python3

1import sys, os 2if getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"): 3 os.chdir(sys._MEIPASS)

と入れてみてください。

投稿2021/02/24 17:31

Marusoftware

総合スコア189

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問