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

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

ただいまの
回答率

87.80%

作成したexeファイルが動作しない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,019
退会済みユーザー

退会済みユーザー

前提・実現したいこと

動作中のPythonFile(高齢者運転免許試験7)をexe化したが、不動作でした。

何がいけないのか教えて欲しいのです。 宜しくお願い致します。

発生している問題・エラーメッセージ

下記のエラーが表示されます

作ったexeファイルをクリックしても、「Failed to execute script 高齢者運転免許試験7」 と表示され動作しません。
exe化の詳細下記に載せました。

試したこと

・数回exe化をtryしましたが、同じ結果でした。
・別の場所にあるPCで、同じような方法でexe化したものも動作しませんでした。
・exe化するときの方法 コマンドプロンプト:下記へコピペしました。

''''''''''''''''''''''''''''''''''''
C:\WINDOWS\system32>cd C:\Users\tak11\デスクトップ\exe_file7

C:\Users\tak11\デスクトップ\exe_file7>pyinstaller --onefile --noconsole 高齢者運転免許試験7.py
140 INFO: PyInstaller: 3.5
141 INFO: Python: 3.7.3
141 INFO: Platform: Windows-10-10.0.17763-SP0
149 INFO: wrote C:\Users\tak11\デスクトップ\exe_file7\高齢者運転免許試験7.spec
151 INFO: UPX is not available.
152 INFO: Extending PYTHONPATH with paths
['C:\\Users\\tak11\\デスクトップ\\exe_file7', 'C:\\Users\\tak11\\デスクトップ\\exe_file7']
152 INFO: checking Analysis
153 INFO: Building Analysis because Analysis-00.toc is non existent
153 INFO: Initializing module dependency graph...
157 INFO: Initializing module graph hooks...
166 INFO: Analyzing base_library.zip ...
5352 INFO: running Analysis Analysis-00.toc
5358 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:\users\tak11\appdata\local\programs\python\python37\python.exe
6017 INFO: Caching module hooks...
6047 INFO: Analyzing C:\Users\tak11\デスクトップ\exe_file7\高齢者運転免許試験7.py
6687 INFO: Processing pre-find module path hook   distutils
8944 INFO: Processing pre-find module path hook   site
8946 INFO: site: retargeting to fake-dir 'c:\\users\\tak11\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\fake-modules'
10871 INFO: Processing pre-safe import module hook   setuptools.extern.six.moves
14638 INFO: Loading module hooks...
14638 INFO: Loading module hook "hook-distutils.py"...
14644 INFO: Loading module hook "hook-encodings.py"...
14706 INFO: Loading module hook "hook-lib2to3.py"...
14715 INFO: Loading module hook "hook-numpy.core.py"...
14798 INFO: Loading module hook "hook-numpy.py"...
14799 INFO: Loading module hook "hook-PIL.Image.py"...
15293 INFO: Loading module hook "hook-PIL.py"...
15295 INFO: Excluding import 'tkinter'
15297 INFO:   Removing import of tkinter from module PIL.ImageTk
15297 INFO: Import to be excluded not found: 'FixTk'
15298 INFO: Excluding import 'PySide'
15299 INFO:   Removing import of PySide from module PIL.ImageQt
15300 INFO: Excluding import 'PyQt4'
15301 INFO:   Removing import of PyQt4 from module PIL.ImageQt
15302 INFO: Excluding import 'PyQt5'
15303 INFO:   Removing import of PyQt5 from module PIL.ImageQt
15304 INFO: Loading module hook "hook-PIL.SpiderImagePlugin.py"...
15306 INFO: Excluding import 'tkinter'
15307 INFO: Import to be excluded not found: 'FixTk'
15307 INFO: Loading module hook "hook-pkg_resources.py"...
15535 INFO: Processing pre-safe import module hook   win32com
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'win32com'
15582 INFO: Processing pre-safe import module hook   win32com
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'win32com'
15888 INFO: Loading module hook "hook-pydoc.py"...
15890 INFO: Loading module hook "hook-scipy.py"...
15904 INFO: Loading module hook "hook-setuptools.py"...
16407 INFO: Loading module hook "hook-sysconfig.py"...
16409 INFO: Loading module hook "hook-xml.dom.domreg.py"...
16411 INFO: Loading module hook "hook-xml.py"...
16413 INFO: Loading module hook "hook-_tkinter.py"...
16613 INFO: checking Tree
16613 INFO: Building Tree because Tree-00.toc is non existent
16613 INFO: Building Tree Tree-00.toc
16798 INFO: checking Tree
16798 INFO: Building Tree because Tree-01.toc is non existent
16799 INFO: Building Tree Tree-01.toc
16865 INFO: Looking for ctypes DLLs
16906 INFO: Analyzing run-time hooks ...
16912 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
16927 INFO: Including run-time hook 'pyi_rth_pkgres.py'
16935 INFO: Including run-time hook 'pyi_rth__tkinter.py'
16952 INFO: Looking for dynamic libraries
21569 INFO: Looking for eggs
21570 INFO: Using Python library c:\users\tak11\appdata\local\programs\python\python37\python37.dll
21570 INFO: Found binding redirects:
[]
21582 INFO: Warnings written to C:\Users\tak11\デスクトップ\exe_file7\build\高齢者運転免許試験7\warn-高齢者運転免許試験7.txt
21686 INFO: Graph cross-reference written to C:\Users\tak11\デスクトップ\exe_file7\build\高齢者運転免許試験7\xref-高齢者運転免許試験7.html
21769 INFO: checking PYZ
21769 INFO: Building PYZ because PYZ-00.toc is non existent
21770 INFO: Building PYZ (ZlibArchive) C:\Users\tak11\デスクトップ\exe_file7\build\高齢者運転免許試験7\PYZ-00.pyz
22810 INFO: Building PYZ (ZlibArchive) C:\Users\tak11\デスクトップ\exe_file7\build\高齢者運転免許試験7\PYZ-00.pyz completed successfully.
22841 INFO: checking PKG
22842 INFO: Building PKG because PKG-00.toc is non existent
22842 INFO: Building PKG (CArchive) PKG-00.pkg
42864 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
42900 INFO: Bootloader c:\users\tak11\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe
42901 INFO: checking EXE
42901 INFO: Building EXE because EXE-00.toc is non existent
42902 INFO: Building EXE from EXE-00.toc
42903 INFO: Appending archive to EXE C:\Users\tak11\デスクトップ\exe_file7\dist\高齢者運転免許試験7.exe
43113 INFO: Building EXE from EXE-00.toc completed successfully.
'''''''''''''''''''''''''''''

補足情報(FW/ツールのバージョンなど)

W10 64bit
Python3.7 

ここにより詳細な情報を記載してください。

念のため、長くなりますがfileのcodeを書きします。

'''''''''''''''''''''''''

高齢者運転免許試験7.py  8/9/2019 完成、動作中

乱数でpng画像を切り替える.py 8/8/2019

全画像に品物の名前を追加  8/9/2019

import time
import tkinter as tk
import random
from PIL import Image, ImageTk

root = tk.Tk()
root.title("グループ画像を当てる")
root.geometry('350x500')

ボタン「次へ」が押されたときの画像処理

def select_img_file():
global ran
ran = random.randrange(1, 65)    
photo_file =  str(ran)+'.png'    

print(photo_file)

return photo_file    

def push_next_button(event):
img_next = ImageTk.PhotoImage(Image.open(select_img_file()))
panel.configure(image = img_next)
panel.photo = img_next

print(ran)

def push_png_button(event):
global ran

if ran <= 4:        
image_png = ImageTk.PhotoImage(Image.open("A_1a.png"))
panel.configure(image = image_png)
panel.photo = image_png

print(image_png)      

elif ran <= 8 and ran >= 5:
image_png = ImageTk.PhotoImage(Image.open("A_2a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 12 and ran >= 9:
image_png = ImageTk.PhotoImage(Image.open("A_3a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 16 and ran >= 13:
image_png = ImageTk.PhotoImage(Image.open("A_4a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 20 and ran >= 17:
image_png = ImageTk.PhotoImage(Image.open("B_1a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 24 and ran >= 21:
image_png = ImageTk.PhotoImage(Image.open("B_2a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 28 and ran >= 25:
image_png = ImageTk.PhotoImage(Image.open("B_3a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 32 and ran >= 29:
image_png = ImageTk.PhotoImage(Image.open("B_4a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 36 and ran >= 33:
image_png = ImageTk.PhotoImage(Image.open("C_1a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 40 and ran >= 37:
image_png = ImageTk.PhotoImage(Image.open("C_2a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 44 and ran >= 41:
image_png = ImageTk.PhotoImage(Image.open("C_3a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 48 and ran >= 45:
image_png = ImageTk.PhotoImage(Image.open("C_4a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 52 and ran >= 49:
image_png = ImageTk.PhotoImage(Image.open("D_1a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 56 and ran >= 53:
image_png = ImageTk.PhotoImage(Image.open("D_2a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 60 and ran >= 57:
image_png = ImageTk.PhotoImage(Image.open("D_3a.png"))
panel.configure(image = image_png)
panel.photo = image_png

elif ran <= 64 and ran >= 61:
image_png = ImageTk.PhotoImage(Image.open("D_4a.png"))
panel.configure(image = image_png)
panel.photo = image_png

img = ImageTk.PhotoImage(Image.open(select_img_file()))
panel = tk.Label(root,image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
panel.place(x=45,y=10)

btn1=tk.Button(root, text='画像切換')
btn1.place(x=70,y=430)
btn1.bind("<1>", push_next_button)

btn2=tk.Button(root, text='全画像表示')
btn2.place(x=200,y=430)
btn2.bind("<1>", push_png_button)

root.mainloop()

'''''''''''''''''''''''''''

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • FiroProchainezo

    2019/08/12 09:41

    ソースコードは``````で囲っていただけますか。
    また、エラーメッセージはエラーメッセージをコピペして貼り付けてください。
    要約されると調べられません。

    キャンセル

回答 2

checkベストアンサー

+2

何がいけないのか

PythonスクリプトをEXE化しようと考えたこと(やろうとしていることはいばらの道です)

どうすればEXE化したPythonスクリプトが動くようになるか

まずは--noconsoleオプションなしでEXE化してみて、実行時にどのようなメッセージが表示されるか見てみると良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/12 12:57

    回答有難うございます。 

    今回は「C:\Users\tak11\デスクトップ\exe_file7>pyinstaller -F 高齢者運転免許試験7.py」でexe化しました。

    そのexeファイルをクリックすると、コマンドプロンプトが瞬間的に表れました。 それによると 「17.pngかディレクトリーが有りません」と出てました。 しかし.pyファイルではしっかりそのfileも表示されてますので、別の理由なのでしょうね。

    同じやり方で 100枚のjpg、100曲の読みの入った「百人一首.py」のexe化には成功しております。

    もう暫く悪戦苦闘してみます。

    有難うございました。

    キャンセル

  • 2019/08/12 13:32

    ダブルクリックではなくコマンドプロンプトを使用してEXEを実行するとエラーが消えないので「どうすれば」を試行錯誤するのに便利です。そしてエラーメッセージのコピーがあれば、それをもとに質問することもできます。ご参考までに。

    キャンセル

  • 2019/08/15 12:36

    YouheiSakuraiさん

    用事が有り返事が遅れました。 コマンドプロンプトのメッセージは「画像が見つからない」というものでした。 

    以前「100枚のjpg、100曲の読みの入った「百人一首.py」のexe化には成功」と書きましたが、同じエラーで不動作でした。

    その後非常に簡単なcodeでexe化を試しましたが、全く同じ理由で不動作でした。

    その後ネットで知ったのですが、今回のように -Fでexe化しても画像pathをうまく見つけられない場合は、.specを修正して上手く行ったという書き込みが有りました。

    exe化の際に同時に出来るxxx.specについては理解が出来てないので、もう暫く勉強してみます。

    というわけで、pyinstallerが画像との相性が良くなさそうですので、xxx.spec修正を試みてみます。

    ここまで来たのも YouheiSakuraiさん のお陰と感謝しております。

    有難うございました。

    キャンセル

0

使用していた画像処理モジュールPillowの代わりに、次のcodeにしたらexeが出来ました。

勿論xxx.specに画像のpathを追加は致しました。 正直言ってこの関数(?)の意味が良く分かりませんが、なんとか動作するようになりました。

コメント頂いた皆様に感謝いたします。

def resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る