转为.exe后pyscreenshot不截图
After converting to .exe, pyscreenshot doesn't take screenshots
我一直在 Python 中制作屏幕到文本程序,我想将其转换为 .exe 文件。这是因为脚本需要在不同的系统上 运行 而没有安装 Python。
我的代码如下:
import numpy as np
import cv2
from PIL import Image
import pytesseract
import requests
import pyscreenshot
def main():
currentWattage = 0
while(True):
imgGrab = pyscreenshot.grab(bbox=wattageBox)
img = np.array(imgGrab)
strRead = pytesseract.image_to_string(img, config="--psm 6")
try:
wattage = int(strRead)
if(wattage != currentWattage):
print("Wattage geupdate, lampen reageren")
currentWattage = wattage
except ValueError:
print("Could not convert " + strRead)
print(currentWattage)
if __name__ == "__main__":
print("Start")
pytesseract.tesseract_cmd = r'Tesseract-OCR\tesseract.exe'
wattageBox = (150, 400, 240, 430)
main()
如果我通过 VS Code 运行 它,它工作正常。我得到我想要的结果。但是当我用 cx_Freeze 将它转换为 .exe 文件时,它会出于某种原因不断重新启动并填满我的内存。
我认为它与 pyscreenshot 有关,但也许你们中的一些人有在 .exe 中使用 pyscreenshot 的经验?
pyscreenshot 使用多重处理,需要调用 multiprocessing.freeze_support()
函数来冻结使用多重处理生成 Windows 可执行文件的程序,请参阅 multiprocessing documentation.
尝试将以下导入添加到您的代码中:
from multiprocessing import Process, freeze_support
并将其主要部分修改如下:
if __name__ == "__main__":
freeze_support()
print("Start")
pytesseract.tesseract_cmd = r'Tesseract-OCR\tesseract.exe'
wattageBox = (150, 400, 240, 430)
Process(target=main).start()
此解决方案的灵感来自 exe generated by py2exe and pyinstaller not working。
我一直在 Python 中制作屏幕到文本程序,我想将其转换为 .exe 文件。这是因为脚本需要在不同的系统上 运行 而没有安装 Python。
我的代码如下:
import numpy as np
import cv2
from PIL import Image
import pytesseract
import requests
import pyscreenshot
def main():
currentWattage = 0
while(True):
imgGrab = pyscreenshot.grab(bbox=wattageBox)
img = np.array(imgGrab)
strRead = pytesseract.image_to_string(img, config="--psm 6")
try:
wattage = int(strRead)
if(wattage != currentWattage):
print("Wattage geupdate, lampen reageren")
currentWattage = wattage
except ValueError:
print("Could not convert " + strRead)
print(currentWattage)
if __name__ == "__main__":
print("Start")
pytesseract.tesseract_cmd = r'Tesseract-OCR\tesseract.exe'
wattageBox = (150, 400, 240, 430)
main()
如果我通过 VS Code 运行 它,它工作正常。我得到我想要的结果。但是当我用 cx_Freeze 将它转换为 .exe 文件时,它会出于某种原因不断重新启动并填满我的内存。
我认为它与 pyscreenshot 有关,但也许你们中的一些人有在 .exe 中使用 pyscreenshot 的经验?
pyscreenshot 使用多重处理,需要调用 multiprocessing.freeze_support()
函数来冻结使用多重处理生成 Windows 可执行文件的程序,请参阅 multiprocessing documentation.
尝试将以下导入添加到您的代码中:
from multiprocessing import Process, freeze_support
并将其主要部分修改如下:
if __name__ == "__main__":
freeze_support()
print("Start")
pytesseract.tesseract_cmd = r'Tesseract-OCR\tesseract.exe'
wattageBox = (150, 400, 240, 430)
Process(target=main).start()
此解决方案的灵感来自 exe generated by py2exe and pyinstaller not working。