PIL: ImageGrab.grab () не удалось - OSError: сбой захвата экрана - PullRequest
0 голосов
/ 13 марта 2019

У меня есть скрипт, который постоянно делает скриншоты через PIL ImageGrab. Код выглядит так:

def updateScreenshot(self):
        self.screen = ImageGrab.grab()

Функция updateScreenshot() вызывается довольно часто, например, 2-3 раза в секунду. Скрипт работал нормально, пока я не провела рефакторинг класса и не переместила весь код, связанный со скриншотами, во внешний класс модели, который инкапсулирует всю логику скриншота. Теперь мой основной класс имеет:

self.screenshotService = ScreenshotService()

в его функции __init_ _. Затем ScreenshotService запускает updateScreenshot(). Первые несколько попыток updateScreenshot() все еще работают, после этого возникает следующая ошибка:

File "...\screenshotService.py", line 15, in updateScreenshot
    self.screen = ImageGrab.grab()
  File "C:\Python34\lib\site-packages\PIL\ImageGrab.py", line 31, in grab
    size, data = grabber()

Я нашел:

  1. https://github.com/python-pillow/Pillow/issues/1601
  2. Сделайте скриншот с помощью скрипта Python. [Linux]

но это на самом деле не указывает мне правильное направление.

Есть идеи? Спасибо.

Python 3.4, PIL: 5.4.1

...