Python screenshot()给出:ImportError:无法在kivy中导入名称glReadPixels错误

Python screenshot()给出:ImportError:无法在kivy中导入名称glReadPixels错误,python,kivy,Python,Kivy,要在kivy中拍摄一个窗口的截图,我们可以根据文档使用截图(name='screenshot{:04d}.png') 但是,我在尝试时遇到以下错误: 回溯(最近一次呼叫最后一次): 文件“D:/Paarth/Google\u Drive/Google Drive/Codes/Python/Work/kivy/kivyBasics/Screenshots\u SaveImage.py”,第26行,在 MyApp().run() 文件“C:\Kivy-1.8.0-py2.7-win32\Pytho

要在kivy中拍摄一个窗口的截图,我们可以根据文档使用截图(name='screenshot{:04d}.png')

但是,我在尝试时遇到以下错误:

回溯(最近一次呼叫最后一次): 文件“D:/Paarth/Google\u Drive/Google Drive/Codes/Python/Work/kivy/kivyBasics/Screenshots\u SaveImage.py”,第26行,在 MyApp().run() 文件“C:\Kivy-1.8.0-py2.7-win32\Python27\lib\Kivy\app.py”,第766行,正在运行 root=self.build() 文件“D:/Paarth/Google\u Drive/Google Drive/Codes/Python/Work/kivy/kivyBasics/Screenshots\u SaveImage.py”,第19行,内部版本 screenshot(name='screenshot{:04d}.png') 屏幕截图中第250行的文件“C:\Kivy-1.8.0-py2.7-win32\Python27\lib\Kivy\core\window\window\u pygame.py” 从kivy.core.gl导入glReadPixels、gl_RGBA、gl_UNSIGNED_字节 ImportError:无法导入名称glReadPixels

使用的代码:

import  kivy
kivy.require ( '1.8.0 ' )
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.core.window import WindowBase
from kivy.core.window import Window


class MyWidget(Widget):
    pass

class MyApp(App):
    def build(self):
        parent = MyWidget()

        a = Button(text="hello")
        parent.add_widget(a)
        Window.screenshot(name='screenshot{:04d}.png')

        return parent


if __name__ == '__main__':
    MyApp().run()

这似乎是一个bug,我已经报告了一个关于它的问题


同时(与您之前的问题相关),您可以使用新的小部件的
导出到\u png
方法,只需将其代码复制到您自己的小部件中,您就可以找到代码。

要通过恶劣来澄清答案,您需要执行以下操作,将导出到\u png包含在您的python文件中。这个

from kivy.graphics import Canvas, Translate, Fbo, ClearColor, ClearBuffers
kv = '''
cameraWidget:
    orientation: 'vertical'
    Camera:
        id: camera
        resolution: (640, 480)
        play: False
    ToggleButton:
        text: 'Play'
        on_press: camera.play = not camera.play
        size_hint_y: None
        height: '48dp'
    Button:
        text: "Take picture"
        on_press: root.TakePicture()
        height: '48dp'

'''
class cameraWidget(BoxLayout):
    def TakePicture(self, *args):
        self.export_to_png = export_to_png
        self.export_to_png(self.ids.camera, filename='test2.png')

class MyApp(App):
    def build(self):
        return Builder.load_string(kv)

if __name__ == '__main__':
    MyApp().run()

您可以在
kivy.graphics.opengl
中找到
glReadPixels
。 在Python解释器中尝试以下操作:

>>> from kivy.graphics.opengl import glReadPixels

你是如何安装kivy的?你下载了发行版zip吗?这是windows 7吗?是的,下载zip,是的,它是windows 7。你是如何运行它的?您是否从kivy提供的kivy.bat文件运行它?如果没有,试着从那里运行它,看看是否会遇到同样的问题。好的。。谢谢你在我的函数工作中提出了这个错误并将代码导出到png