pyinstaller main.py --onefile コマンドプロンプトで実行するとエラーになり、exe化出来ません。
このエラーも調べてみましたが、同じような現象の方を見つけられず・・・
どなたかご教示ください。宜しくお願い致します。
python ver.3.8.3
CMD
1File "c:\users\anaconda3\lib\site-packages\PyInstaller\hooks\hook-sqlalchemy.py", line 30, in <module> 2 dialects = eval(dialects.strip()) 3 File "<string>", line 0 4 5 ^ 6SyntaxError: unexpected EOF while parsing 7 8(base) C:\Users\Desktop\sample>
GUIを使用したアプリケーションで、データを読み込み加工、CSVを作成します。
python
1#ライブラリ 2import tkinter as tk 3import tkinter.messagebox as tkm 4from tkinter import filedialog 5import pandas as pd 6import datetime as dt 7import cx_Oracle 8 9 10USERID = "00000" 11PASSWORD = "00000" 12DESTINATION = "00000" 13 14#時刻 15now = dt.datetime.now() 16time = now.strftime('%Y%m%d-%H%M%S') 17 18def OpenFileDlg(tbox): 19 ftype = [('','*')] 20 dir = '.' 21 # ファイルダイアログ表示 22 filename = filedialog.askopenfilename(filetypes = ftype, initialdir = dir) 23 # ファイルパスをテキストボックスに表示 24 tbox.insert(0, filename) 25 26#ボタン関数 27def btn_click(): 28 cc=str(txt1.get()) 29 sc=str(txt2.get()) 30 SQL="select MAX(TNPMN) from Hstst WHERE KOKC = '" + cc + "'" 31 SQL2 = "select MAX(SYIMN1),MAX(syimn2) from HENSYIMST WHERE SYIC = '" + sc + "'" 32 33 34 if not len(cc) == 6 : 35 tkm.showerror("入力エラー", "顧客番号は6桁です") 36 return 37 elif not len(sc) == 7 : 38 tkm.showerror("入力エラー", "社員番号は7桁です") 39 return 40 elif file_text.get() == '': 41 tkm.showerror('エラー','データファイルを指定してください') 42 return 43 else: 44 with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection: 45 with connection.cursor() as cursor: 46 for row in cursor.execute(SQL): 47 if row == (None,): 48 tkm.showerror("エラー", "顧客番号に問題があります") 49 return 50 else: 51 row_replace = [rows.replace(' ', '')for rows in row] 52 kokyac = ''.join(row_replace) 53 with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection: 54 with connection.cursor() as cursor: 55 for row in cursor.execute(SQL2): 56 if row == (None,None): 57 tkm.showerror("エラー", "社員番号に問題があります") 58 return 59 else: 60 row_replace = [rows.replace(' ', '')for rows in row] 61 syain = ''.join(row_replace) 62 ques = tkm.askokcancel("確認", "店名:"+kokyac+"様\n""処理者:"+syain+"\nでCSVを出力しますか?") 63 if ques == False: 64 return 65 66 f = open(file_text.get(), 'r') 67 colspecs = [(22,25), (25,28),(28,30),(30,32),(22,32),(47,51),(22,28)] 68 names = ["SCAN", now.strftime("%Y%m%d"), now.strftime('%H%M%S'),now.strftime("%Y%m%d-%H%M%S"),sc,cc," "] 69 df = pd.read_fwf(f, skiprows=1,header=None, names=names,colspecs=colspecs,dtype=object) 70 df = df.dropna(subset=["SCAN"]) 71 72 f = open(file_text.get(), 'r') 73 colspecss = [(51,54),(54,57),(57,59),(59,61),(51,61),(72,76),(51,57)] 74 dfA = pd.read_fwf(f,header=None, names=names, colspecs=colspecss,dtype=object) 75 dfA = dfA.dropna(subset=["SCAN"]) 76 df_concat = pd.concat([df, dfA]) 77 df_concat[cc]=df_concat[cc].astype(int) 78 df_concat[cc] = df_concat.groupby(sc)[cc].transform('sum') 79 df_sum = df_concat.drop_duplicates(sc) 80 81 trk = df_concat[" "] 82 trk = ','.join(map(str,trk)) 83 SQL3 = "SELECT RHB,TRKH FROM ShnZok WHERE RHB IN" "(" + trk + ")" 84 dfC = pd.DataFrame() 85 86 with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection: 87 with connection.cursor() as cursor: 88 for row in cursor.execute(SQL3): 89 dfC = dfC.append([row]) 90 dfC=dfC.reset_index(drop=True) 91 dfD = pd.merge(df_sum,dfC,left_on = " ",right_on=0) 92 drop_col = [sc," ", 0] 93 df_result = dfD.drop(drop_col, axis=1) 94 df_result = df_result[["SCAN", now.strftime("%Y%m%d"), now.strftime('%H%M%S'),now.strftime("%Y%m%d-%H%M%S"),1,cc]] 95 df_result = df_result.rename(columns={1: sc}) 96 df_result[" "] = "" 97 98 df_result.to_csv(cc+"_{}.csv".format(time), index= False,encoding="shift-jis") 99 tkm.showinfo("情報", "CSVを保存しました") 100 101#画面表示 102root = tk.Tk() 103root.geometry('500x400+600+300') 104root.title('入力画面') 105 106#顧客番号 107lbl1 = tk.Label(text='顧客番号',font=(u'MS ゴシック', 11, 'bold')) 108lbl1.place(x=85, y=145) 109txt1 = tk.Entry(width=30) 110txt1.place(x=160, y=150) 111 112#社員番号 113lbl2 = tk.Label(text='社員番号',font=(u'MS ゴシック', 11, 'bold')) 114lbl2.place(x=85, y=175) 115txt2 = tk.Entry(width=30) 116txt2.place(x=160, y=180) 117 118# Excelファイルダイアログ 119label = tk.Label(root, text='データファイル',font=(u'MS ゴシック', 10, 'bold')) 120label.place(x=100, y=95) 121file_text = tk.Entry(root, width=40) 122file_text.place(x=100, y=115) 123fdlg_button = tk.Button(root, text='ファイル選択', command = lambda: OpenFileDlg(file_text) ) 124fdlg_button.place(x=360, y=110) 125 126#ボタン 127btn = tk.Button(root, text='CSV出力',width=20, font=("Menlo",11),command=btn_click) 128btn.place(x=155, y=220) 129 130btn1 = tk.Button(root, text="終了", width=20, font=("Menlo",11),command=root.destroy) 131btn1.place(x=155, y=250) 132 133root.mainloop() #表示保持
回答2件
あなたの回答
tips
プレビュー