Python 2.7.17 - PyAuto GUI говорит, что Подушка не установлена, но установлена - PullRequest
1 голос
/ 18 февраля 2020

В настоящее время я делаю приложение, которое делает снимок экрана и сравнивает некоторые вещи на нем. В настоящее время, спустя долгое время, мне удалось получить ошибку, отличную от той, которую я получал раньше, еще дальше в программе (ура для прогресса!)

Я опубликовал трассировку, где говорится, что требуется пакет Pillow, но он уже установлен вместе с PyAuto GUI. Я установил предыдущие версии, надеясь, что это решит проблему. Это не ...

Я делаю это на Windows XP 32 бит (да, я знаю, он достиг EOL за 5 лет go, но на целевом компьютере есть WinXP.

Вот список всех пакетов, которые я установил:

Package     Version
----------- -------
MouseInfo   0.1.2
numpy       1.16.6
Pillow      6.0.0
pip         20.0.2
PyAutoGUI   0.9.48
PyGetWindow 0.0.8
PyMsgBox    1.0.7
pyperclip   1.7.0
PyRect      0.1.4
PyScreeze   0.1.26
PyTweening  1.0.3
setuptools  41.2.0

Можете ли вы мне помочь?

Код:

# Standard imports
import cv2
import numpy as np
import time
import pyautogui
import datetime
import time

global LatestLine

# Square 1 Coordinates - Check if machine is working
x1=280
y1=55
h1=31
w1=33
# Square 2 Coordinates - Check if program is active
x2=157
y2=177
h2=38
w2=38

while True:
    #Get Screenshot
    imagem = pyautogui.screenshot()
    imagem.save(r'C:/Machine_Tracker/Imagem_Moving.png')

    print ("Screenshot taken")

    #Set image
    imagem = cv2.imread("C:/Machine_Tracker/Imagem_Moving.png", cv2.IMREAD_GRAYSCALE)
    im = cv2.bitwise_not(imagem)

    now = datetime.datetime.now() 
    # Read square 1 - Check if machine is working
    print "Crop image to check if machine is working"
    crop_img = im[y1:y1+h1, x1:x1+w1]
    n_white_pix1 = np.sum(crop_img == 255)
    print('Number of white pixels:', n_white_pix1)
    #cv2.imshow("Machine Status: White Pixels: {0}".format(n_white_pix1), crop_img)
    cv2.imwrite("C:/Machine_Tracker/Machine_Status/MachineStatus.png", crop_img)

    # Read square 2 - Check if program is active
    print "Crop image to check if program is active"
    crop_img = im[y2:y2+h2, x2:x2+w2]
    n_white_pix2 = np.sum(crop_img == 255)
    print('Number of white pixels:', n_white_pix2)
    #cv2.imshow("Program Status: White Pixels: {0}".format(n_white_pix2), crop_img)
    cv2.imwrite("C:/Machine_Tracker/App_Status/AppStatus.png", crop_img)

    #Se Estiver na app
        # Se Estiver a trabalhar
            #Escreve "Working + DateTime"
        # Else
            #Escreve "Not Working + DateTime"
        #EndIf
    # Else
        #Escreve "Fora Da App + Datetime"
    #endif

    if n_white_pix2 == 608: #Esta na app
        if n_white_pix1 <= 1023: #Esta a trabalhar
            #Quando a maquina nao esta a trabalhar,
            #o bocado que vamos buscar tem 1023 pixeis brancos
            #Sempre que e menor que esse valor, a maquina esta a trabalhar
            #Write machine working log to file
            Log = open("C:/Machine_Tracker/StatusLog.txt", "w")
            LatestLine = "{0} - App is open and Machine is working\n".format(now.strftime("%Y-%m-%d %H:%M:%S"))
            Log.write(LatestLine)
            Log.close()
            #print LatestLine
            print(LatestLine)
        else:
            #Write machine working log to file
            Log = open("C:/Machine_Tracker/StatusLog.txt", "w")
            LatestLine = "{0} - App is open but Machine is NOT working\n".format(now.strftime("%Y-%m-%d %H:%M:%S"))
            Log.write(LatestLine)
            Log.close()
            print(LatestLine)
    else:
        #Write machine working log to file
        Log = open("C:/Machine_Tracker/StatusLog.txt", "w")
        LatestLine = "{0} - App is NOT open\n".format(now.strftime("%Y-%m-%d %H:%M:%S"))
        Log.write(LatestLine)
        Log.close()
        print(LatestLine)

    time.sleep(20)
cv2.waitKey(0)

Traceback:

Traceback (most recent call last):
  File "C:\Python27\Check_for_Status.py", line 24, in <module>
    imagem = pyautogui.screenshot()
  File "C:\Python27\lib\site-packages\pyscreeze\__init__.py", line 134, in wrapper
    raise PyScreezeException('The Pillow package is required to use this function.')
PyScreezeException: The Pillow package is required to use this function.

1 Ответ

0 голосов
/ 04 марта 2020

Может, стоит попробовать импортировать подушку в коде python ??? Я не уверен, но попробуйте включить это вверху:

import Pillow
...