Код: Выделить всё
from io import StringIO
memory_buffer = StringIO()
sys.stdout = memory_buffer
import tkinter as tk
from ultralytics import YOLO
import cv2 as cv
global testimg
testimg = cv.imread("testimg.jpg")
class MyGUI:
def __init__(self):
self.root = tk.Tk() # root here is window name now
self.root.geometry("600x400")
self.root.columnconfigure(0, weight = 1)
self.root.rowconfigure(0, weight = 1)
self.root.rowconfigure(1, weight = 1)
self.root.rowconfigure(2, weight = 1)
self.buttonmodel1 = tk.Button(self.root, text = "Model 1", bg = "#c9c9c9", bd= 5, width = 200, command = self.button1pressed)
self.buttonmodel1.grid(row =0, column=0, sticky= "WENS", padx = 3)
self.buttonmodel2 = tk.Button(self.root, text = "Model 2", bg = "#c9c9c9", bd= 5, width = 200)
self.buttonmodel2.grid(row =1, column=0, sticky= "WENS", padx = 3)
self.buttonmodel3 = tk.Button(self.root, text = "Model 3", bg = "#c9c9c9", bd= 5, width = 200)
self.buttonmodel3.grid(row =2, column=0, sticky= "WENS", padx = 3)
self.root.mainloop()
def button1pressed(self):
global testimg
model1 = YOLO("model1.pt")
model2 = YOLO("model2.pt")
model3 = YOLO("model3.pt")
resultsmodel1 = model1.predict(testimg)
print("model1")
resultsmodel2 = model2.predict(testimg)
print("model2")
resultsmodel3 = model3.predict(testimg)
print("model3")
MyGUI()
Код: Выделить всё
pyinstaller --collect-data ultralytics Model_Test.py --onefile --windowed
Код: Выделить всё
from io import StringIO
memory_buffer = StringIO()
sys.stdout = memory_buffer
https://github.com/ultralytics/ultralytics/issues/7064< /p>
Проблема при конвертации Python с Ultralytics в EXE-файл
При отладке в VS 2022 таких проблем нет, только после того, как программа была упакована и запущена как exe. Все файлы модели находятся в том же каталоге, что и исполняемый файл.
Похоже, что как только вызывается .predict(), главное окно зависает, на мгновение появляется консоль, и появится новое такое же окно. В случае закрытия программа возобновит работу, как задумано, без дополнительных ошибок:
[img]https:// i.sstatic.net/Wx7tiqNw.png[/img]
Похоже, это очень узкая проблема, я предполагаю, что что-то не так в Ultralytics + Pyinstaller + Tkinter.
Пожалуйста, дайте мне совет или сообщите, если потребуется дополнительная информация.
Подробнее здесь: https://stackoverflow.com/questions/786 ... erpyinstal