Я хочу сделать скриншот определенного региона на веб-странице, используя pyscreenshot - PullRequest
0 голосов
/ 29 апреля 2019

Я использовал пакет pyscreenshot, и во время работы моего скрипта я получаю сообщение об ошибке ниже.Я пытаюсь сделать снимок экрана определенного региона.ниже мой сценарий:

import pyscreenshot as ImageGrab

im=ImageGrab.grab(bbox=(10,10,500,500))

im.save('im.png')

if __name__ == '__main__':
    pass

===================================================================================== Traceback (последний вызов последний): Файл "", строка 1, в файле "C: \ Python27 \ lib \ multiprocessing \ forking.py", строка 380, в основном файле подготовки (prep_data) Файл "C: \ Python27 \ lib \ multiprocessing \ forking.py"строка 509, в подготовительном файле ' parent_main ', файл, имя_пути и т. д. Файл "C: \ harsh \ CodeForAutomation \ latest_25jan2019 \ aha-gui-fvt \ pytesseract \ pytes \ test_pyscreenshot_localised.py", строка 9,в im = ImageGrab.grab (bbox = (10,10,500,500)) файл "build \ bdist.win32 \ egg \ pyscreenshot__init __. py", строка 67, в захвате

  File "build\bdist.win32\egg\pyscreenshot\__init__.py", line 46, in _grab

  File "build\bdist.win32\egg\pyscreenshot\procutil.py", line 31, in run_in_childprocess
  File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
    self._popen = Popen(self)
  File "C:\Python27\lib\multiprocessing\forking.py", line 258, in __init__
    cmd = get_command_line() + [rhandle]
  File "C:\Python27\lib\multiprocessing\forking.py", line 358, in get_command_line
    is not going to be frozen to produce a Windows executable.''')
RuntimeError: 
            Attempt to start a new process before the current process
            has finished its bootstrapping phase.

            This probably means that you are on Windows and you have
            forgotten to use the proper idiom in the main module:

                if __name__ == '__main__':
                    freeze_support()
                    ...

            The "freeze_support()" line can be omitted if the program
            is not going to be frozen to produce a Windows executable.

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

TL; DR переместите свой код внутрь if __name__ == __main__ (в любом случае, это лучший метод)

import pyscreenshot as ImageGrab

if __name__ == '__main__':
    im = ImageGrab.grab(bbox=(10, 10, 500, 500))
    im.save('im.png')


Кажется, что pyscreenshot использует многопроцессорность и разветвление.

На основании полученного вами сообщения об ошибке и примеров на его pypi странице каждый код, использующий pyscreenshot, должен иметь возможность выбора.

0 голосов
/ 29 апреля 2019

Мне удалось запустить этот скрипт, внеся небольшие изменения, как показано ниже.

import pyscreenshot as ImageGrab

if __name__ == '__main__':
    im=ImageGrab.grab(bbox=(100,100,800,800))
    im.show('im.jpg')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...