2016-05-14 3 views
1

Я пытаюсь сделать скриншот с pyautogui модулем, но постоянно получаю эту ошибкуPython: «pyautogui» не имеет атрибута «скриншот» (Windows)

>>> image = pyautogui.screenshot() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: module 'pyautogui' has no attribute 'screenshot' 

там что-то мне не хватает? В главе Automate the Boring Stuff with Python сказано, что, поскольку я нахожусь в Windows, мне не нужно загружать что-либо кроме pyautogui, чтобы это работало. Кто-нибудь знает, почему это может произойти? Заранее спасибо.

EDIT: Я использую Anaconda, поэтому у меня уже есть Pillow.

+0

Попробуйте обновить pyautogui, используя Sudo пункта установить -U pyautogui – PseudoAj

+0

Согласно [документации] (http://pyautogui.readthedocs.io/en/latest/screenshot.html) вам нужна Подушка, а также. – kindall

+0

Пренебрежимо отметить: я использую Anaconda, так что у вас уже есть подушка. Будет ли редактировать вопрос, чтобы включить это сейчас. Кроме того, мой pyautogui обновлен. – ENPM

ответ

0

Перед использованияКонтактный "IMAGE = pyautogui.screenshot()", вы должны были набрать "импорт pyautogui" перед

0

На Linux, вы должны запустить sudo apt-get install scrot использовать функции скриншота.

0

Похоже PyAutoGUI просто заимствование ImageGrab из PIL/подушки, которые вы можете увидеть, посмотрев в pyautogui внутри screeenshotUtil.py

def _screenshot_win32(imageFilename=None): 
    im = ImageGrab.grab() 
    if imageFilename is not None: 
     im.save(imageFilename) 
    return im 

и далее вниз

# set the screenshot() function based on the platform running this module 
if sys.platform.startswith('java'): 
    raise NotImplementedError('Jython is not yet supported by PyAutoGUI.') 
elif sys.platform == 'darwin': 
    screenshot = _screenshot_osx 
elif sys.platform == 'win32': 
    screenshot = _screenshot_win32 
    from PIL import ImageGrab 
else: 
    screenshot = _screenshot_linux 

grab = screenshot # for compatibility with Pillow/PIL's ImageGrab module. 

У меня было то же самое проблема как OP, но после реализации выше я использовал ImageGrab напрямую. Черпая вдохновение из секции комментария here ответ на OP на окнах, имеющих подушку, установленный будет выглядеть следующим образом:

from PIL import ImageGrab 
import time 

time.sleep(5) 
box = (1106,657,1166,679) #Upper left and lower right corners 
ImageGrab.grab(box).save('box.png') #ImageGrab.grab().save('fullscreen.png') 
0
from pyautogui import screenshotUtil 

im=screenshotUtil.screenshot() 

print im.getpixel((850, 850)) 

Я попробовал. Это похоже на документ. надеяться, что это будет полезно.