Python:' pyautogui'没有属性'截图' (视窗)

时间:2016-05-14 21:53:54

标签: python windows screenshot pyautogui

我正在尝试使用pyautogui模块截取屏幕截图,但不断收到此错误

>>> 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以外的任何内容来实现此功能。有人知道为什么会这样吗?提前谢谢。

编辑:我使用的是Anaconda,所以我已经拥有Pillow

4 个答案:

答案 0 :(得分:0)

在Linux上,您必须运行sudo apt-get install scrot才能使用屏幕截图功能。

答案 1 :(得分:0)

看起来PyAutoGUI只是从PIL / Pillow借用ImageGrab,您可以通过查看screeenshotUtil.py中的pyautogui来看到

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')

答案 2 :(得分:0)

from pyautogui import screenshotUtil

im=screenshotUtil.screenshot()

print im.getpixel((850, 850))

我试过了。它似乎与文档不同。希望这很有帮助。

答案 3 :(得分:-1)

在使用“image = pyautogui.screenshot()”之前,你必须先输入“import pyautogui”