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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

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

Python

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

Q&A

0回答

1350閲覧

python ファイルのexe化について

NR4200

総合スコア41

Python 3.x

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

Python

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

0グッド

2クリップ

投稿2021/02/22 04:13

編集2021/02/22 08:16

前提・実現したいこと

python 複数のファイルに記述したpython ファイルをexe化しようと考えていますが

exe化はできるのですが,exe化できたものを起動したら,コマンドプロンプトが立ち上がり,モジュールが見つからないと表示されコマンドプロンプトが消えます.

動作はデスクトップ上にあるExcelファイルから値を取得しグラフ化するプログラムです.

主なファイルは,matplollib 3.2.2 ,openpyxl 3.0.3 でPython 3.8.3

pyinstaller 4.2
pyinstaller-hooks-contrib 2020.11

またコマンドプロンプトに以下のコードで実行すると
pyinstaller --onefile --hidden-import=matplotlib --hidden-import=tkinter --hidden-import=numpy --hidden-import=openpyxl sample3.py

exe化はできるのですが,exe化できたものを起動したら,コマンドプロンプトが立ち上がり,モジュールが見つからないと表示されコマンドプロンプトが消えます.

しかし,pyinstaller sample3.pyで実行すると,
exe化はできるのですが,exe化できたものを起動したら,コマンドプロンプトが立ち上がりすぐに消えてしまいます.

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

エラーメッセージ

該当のソースコード

python

1#sample3.py 2import tkinter as tk 3from tkinter import ttk 4from tkinter import filedialog 5from Text_box import Text_box_crsp,Text_box_crsp_ 6from Button import Create_Button_crsp_ 7from Label import Label_crsp 8import Make_Graph 9from Excel import Value 10 11def d_command(): 12 path = "C:\Users\○○\Desktop" 13 file_name = "Book1.xlsm" 14 X = Value(path,file_name,"A","ON") 15 Y = Value(path,file_name,"B","ON") 16 Make_Graph.Graph_sample(X,Y) 17 18#メインウィンドウの作成 19win = tk.Tk() 20 21win.geometry("{0}x{1}".format(1300,330)) 22win.title("Create Graph") 23 24#メインフレーム 25frm = ttk.Frame(win) 26frm.grid(column=0, row=0, sticky=tk.NSEW, padx=5, pady=10) 27 28folder_path = tk.StringVar() 29# labelの作成 30folder_label = Label_crsp(frm,"ファイルの指定",0,0,10,0) 31 32graph_label_file = Label_crsp(frm,"ファイル名",0,1,10,0) 33# boxの作成 34graph_box_file = Text_box_crsp(frm,1,1,tk.EW,0,5,"") 35 36defalut_bot = Create_Button_crsp_(frm,"ボタン",1,2,0,0,command=d_command) 37 38# 配置設定 39win.columnconfigure(0, weight=1) 40win.rowconfigure(0, weight=1) 41frm.columnconfigure(1, weight=1) 42win.mainloop()

python

1#tkinterのボタン  Button.py 2import tkinter as tk 3from tkinter import ttk 4 5def Create_Button_crsp(frm,name,column,row,pady,padx): 6 Button = ttk.Button(frm, text=name) 7 Button.grid(column=column, row=row,pady=pady, padx=padx) 8 return Button 9 10def Create_Button_crsp_(frm,name,column,row,pady,padx,command): 11 Button = ttk.Button(frm, text=name,command=command) 12 Button.grid(column=column, row=row,pady=pady, padx=padx) 13 return Button

python

1#Label.py 2import tkinter as tk 3from tkinter import ttk 4 5def Label_crsp(frm,name,column,row,pady,padx): 6 label = ttk.Label(frm, text="{0}".format(name)) 7 # pady:上下の余白 8 label.grid(column=column, row=row, pady=pady, padx=padx) 9 return label

python

1#Text_box.py 2 3import tkinter as tk 4from tkinter import messagebox as mbox 5from tkinter import ttk 6 7def Text_box_crsp(win,column,row,position,pady,padx,initial_value): 8 text = ttk.Entry(win) 9 # colomn:行の位置,row:列の位置,sticky:位置揃え,padx:左右の余白 10 text.grid(column=column,row=row,sticky=position,pady=pady,padx=padx) 11 text.insert(tk.END, "{0}" .format(initial_value)) 12 return text

python

1#Excel.py 2from openpyxl import load_workbook 3from matplotlib import pyplot as plt 4import numpy as np 5 6def Value(path,file_name,point_row,Title): 7 book = load_workbook('{0}\{1}'.format(path,file_name)) 8 active_sheet = book.active 9 10 A = [ i.value for i in active_sheet[point_row] if i.value != None] 11 if Title=="ON": 12 A.pop(0) 13 else: 14 pass 15 return A

python

1#Make_Graph.py 2from matplotlib import pyplot as plt 3import numpy as np 4from matplotlib.ticker import * 5 6def Graph_sample(X,Y): 7 fig, ax = plt.subplots() 8 9 ax.plot(X,Y) 10 11 ax.grid() 12 13 plt.show() 14 return

試したこと

実行時に
pyinstaller --onefile --hidden-import=matplotlib --hidden-import=tkinter --hidden-import=numpy --hidden-import=openpyxl sample3.py

pyinstaller sample3.py --onefile

などを試しましたがうまくいきません.
またファイルを分けるのではなく,
全て同じファイルに記述した時でもうまくいきませんでした.

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

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

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

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

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

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

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

y_waiwai

2021/02/22 07:32

エラーメッセージをコピペしてそのままの形で提示しましょう
NR4200

2021/02/22 07:37

エラーメッセージは出ていません. exe化終了後,distフォルダの中にexe化されたファイルはありますが, exe化できたものを起動したら,コマンドプロンプトが立ち上がり,モジュールが見つからないと表示されコマンドプロンプトが消えます. ちなみに最後4行は以下のものです. 45067 INFO: checking COLLECT 45067 INFO: Building COLLECT because COLLECT-00.toc is non existent 45068 INFO: Building COLLECT COLLECT-00.toc 67687 INFO: Building COLLECT COLLECT-00.toc completed successfully.
NR4200

2021/02/22 07:38

これがエラーメッセージなら何が書かれているのかわかりません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問