В настоящее время я работаю над программой, которая принимает определенный файл в качестве входных данных, работает с данными и предоставляет два графика через Matplotlib (единственный модуль, импортированный в файл анализа данных).
Для этого ясделал небольшой графический интерфейс для пользователя, чтобы выбрать файл, из которого сделан график.(w / tkinter и PIL импортированы).
Мне нужно сделать из этого приложение, и я использую для этого PyInstaller.К сожалению, я не смог заставить окончательный файл работать (или работать должным образом).
Я уже внес несколько изменений как в сам код, так и в файл .spec PyInstaller.
Я добавил функцию для исправления пути для PyInstaller.Я изменил файл .spec, чтобы добавить путь к изображению, а не показывать консоль.Я пробовал с этими настройками как вкл / выкл: UPX, One File.Я проверил файлы журналов на наличие отсутствующих модулей, так как все выглядит нормально.
Часть кода:
Импорт в файл графического интерфейса:
import sys
import os
import tkinter as tk
from tkinter.filedialog import askopenfilename
from tkinter.messagebox import showerror
from PIL import ImageTk, Image
import rectifierDataParser
Импортирует в файл анализа данных:
import sys
import os
import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt
Файл GUI:
class Application(tk.Frame):
def __init__(self, master = None):
tk.Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.fileButton = tk.Button(self, text(...))
self.quitButton = tk.Button(self, text(...))
self.fileButton.pack(side = 'top')
self.quitButton.pack(side = 'bottom')
def load_file(self):
filename = askopenfilename(title = "Select file", filetypes = [("Files", ("*.001", (...)))]
rectifierDataParser.main(filename)
def resource_path(relative_path):
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
app = Application()
app.master.title('Graphing Data')
app.master.geometry('300x200')
img = ImageTk.PhotoImage(Image.open("logo.jpg"))
panel = tk.Label(app, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
app.mainloop()
Поскольку в настоящее время я не могу видеть графический интерфейс на экране, есть липроблема с самим кодом или какая-либо совместимость с PyInstaller (предположительно PyInstaller является полностью функциональным с Tkinter).
Я надеюсь, что один из вас может помочь мне добиться прорыва, так как я застрял на этом из-за большого количества времени!Большое спасибо заранее!