【Python, Pyinstaller, Tkinter, Asari, Janome】Asariを使ったデスクトップアプリをexe化すると発生するエラーを解消したい

実現したいこと

TkinterでAsariの機能を使ったセンチメント分析ができるデスクトップアプリを制作したいのですが、Pyinstallerでexe化するとAsariとJanomeに関係するエラーが発生してしまいます。このアプリを無事Pyinstallerでexe化したいです。
イメージ説明

目標

  • Pyinstallerでexe化時、Asariに関するエラーが発生しないようにする

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

ビルドされたexeファイルを実行するとこのエラーが発生します。exeファイルではなくVSCode上でデバッグすると普通に実行できるのですが...

イメージ説明

該当のソースコード

python

12import tkinter as tk 3from tkinter import ttk 4from tkinter import *5from tkinter import scrolledtext 6 7import asari 8from asari.api import Sonar 9 10window = tk.Tk()11 12# NOTE TKのプロパティー13window.title("感情分析器")14window.geometry("600x800")15 16# NOTE 分析に使う変数17# tk.stringvar - エントリーやラベルに速攻で反映される値18text_init = "イーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波"19text_var = tk.StringVar(value=text_init)20 21pos_snt = 0.022neg_snt = 0.023 24 25#関数 - センチメント分析の結果を得て代入する26def button_gettext():27 #textの値を得る28 text_string = text.get(1.0, tk.END + "-1c")29 text_var.set(text_string)30 31 sonar = Sonar()32 res = sonar.ping(text=str(text_string))33 34 pos_snt = res["classes"][1]["confidence"]35 neg_snt = res["classes"][0]["confidence"]36 37 label_pos["text"] = "正の感情: " + str("{:.4f}".format(pos_snt))38 label_neg["text"] = "負の感情: " + str("{:.4f}".format(neg_snt))39 40#textの値をtext_varに代入する41def button_resettext():42 text_var.set(text_init)43 44 pos_snt = 0.045 neg_snt = 0.046 47 label_pos["text"] = "正の感情: " + str("{:.4f}".format(pos_snt))48 label_neg["text"] = "負の感情: " + str("{:.4f}".format(neg_snt))49 50#ラベル51label01 = ttk.Label(master=window, text="感情分析器")52label01.pack()53 54# テキスト55text = tk.Text(master=window)56text.pack()57 58label_02 = ttk.Label(master=window, text="分析対象のテキストが表示されます:")59label_02.pack()60 61label_text = tk.Message(master=window, textvariable= text_var)62label_text.pack()63 64#ラベル65label_pos = ttk.Label(master=window, text="正の感情: 0.0")66label_pos.pack()67 68#ラベル69label_neg = ttk.Label(master=window, text="負の感情: 0.0")70label_neg.pack()71 72#ボタン73button = ttk.Button(master=window, text = "分析(Asari)", command = button_gettext)74button.pack()75 76#ボタン77button03 = ttk.Button(master=window, text = "リセット", command = button_resettext)78button03.pack()79 80 81window.mainloop()

exe化時の命令文

exe化する際はPyinstallerをVSCodeのターミナルで実行しています。Asariを使わないアプリではこれで無事にビルドできていました。

python

1pyinstaller tkinter_sanalyser.py --onefile --noconsole

調査したこと・試したこと

解消法が分からないので検討中

コメントを投稿

0 コメント