Ошибка при создании бинарного файла с помощью pyinstaller, auto-py-to-exe - PullRequest
0 голосов
/ 25 марта 2020

как новичок в программировании, я создал код, который запускается на spyder (python v.3.7) на windows 10. Я хочу запустить эту маленькую программу на windows -запущенном компьютере, который не есть python программа.

Затем я неоднократно терпел неудачу в создании двоичного файла с помощью pyinstaller, auto-py-to-exe. после сборки появляется несколько сообщений об ошибках.

Не могли бы вы сообщить мне, почему это происходит и как я решаю эти проблемы?

  1. ПРЕДУПРЕЖДЕНИЕ: Невозможно найти пакет для требования greenlet из пакета gevent.
  2. ПРЕДУПРЕЖДЕНИЕ: скрытый импорт "PyQt5.sip" не найден!
  3. ПРЕДУПРЕЖДЕНИЕ: скрытый импорт "MySQLdb" не найден!
  4. ПРЕДУПРЕЖДЕНИЕ: скрытый импорт "psycopg2" не найден найдено!
  5. ПРЕДУПРЕЖДЕНИЕ: скрытый импорт "sqlalchemy. sql .functions.fun c" не найден!
  6. и сотни предупреждений о скрытом импорте "tenorflow_core._api.v2.compat. v1. ~ "не найдено ошибок.
  7. ВНИМАНИЕ: lib не найден: impi.dll, mpich2mpi.dll, msmpi.dll, pgf90rtl.dll, pgc14.dll, pgf90.dll

с помощью команды:

pyinstaller -y -w  "C:\Users\Frankenstein\Desktop\LSR.py"

Код для файла .py приведен ниже:

import tensorflow as tf
import cv2, pyautogui
from numpy import array
from PIL import ImageFile, ImageFilter
ImageFile.LOAD_TRUNCATED_IMAGES = True
import tkinter as tk

# Selected model
CATEGORIES = ["LSR_O", "LSR_X"] # O=0, X=1
model = tf.keras.models.load_model('4-128-4-50.model')

def imaging():
    # Screenshot preparation
    im01 = pyautogui.screenshot(
        region=(15, 220, 720, 720)).filter(
            ImageFilter.MinFilter(size= 7)).resize(
                (256,256)).filter(ImageFilter.MinFilter(size= 3))
    im01_pixel = im01.load()
    for i in range(im01.size[0]): # for every pixel:
        for j in range(im01.size[1]):
            if im01_pixel[i,j] != (0, 0, 0): # if not black:
                im01_pixel[i,j] = (255, 255, 255) # change to white

    # Fitting to model
    im01_L_array = array(im01.convert('L'))
    img_array = im01_L_array/255.0
    new_array = cv2.resize(img_array, (128, 128))
    new_array2 = new_array.reshape(-1, 128, 128, 1)

    # Prediction
    prediction_value = model.predict(new_array2)
    pyautogui.alert(text=CATEGORIES[int(prediction_value)], title='LSR_discrimination', button='OK')

# Program execution
root= tk.Tk()

canvas1 = tk.Canvas(root, width = 300, height = 150)
canvas1.pack()

myButton = tk.Button(text='LSR_O or LSR_X?',
                     command=imaging,
                     bg='green',
                     fg='white',
                     font=10)
canvas1.create_window(150, 75, window=myButton)

root.call('wm', 'attributes', '.', '-topmost', '1')
root.mainloop()
...