Python Kivy没有检测到OpenGL 2.0
我决定在Kivy cross platform中进行一些编程,并成功地将Kivy安装到我的计算机上。问题是,当我运行代码时,会出现以下错误:Python Kivy没有检测到OpenGL 2.0,python,opengl,opengl-es,kivy,Python,Opengl,Opengl Es,Kivy,我决定在Kivy cross platform中进行一些编程,并成功地将Kivy安装到我的计算机上。问题是,当我运行代码时,会出现以下错误: [INFO ] [Kivy ] v1.9.1 [INFO ] [Python ] v3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)] [INFO ]
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO ] [OSC ] using <thread> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] OpenGL version <b'1.1.0'>
[INFO ] [GL ] OpenGL vendor <b'Microsoft Corporation'>
[INFO ] [GL ] OpenGL renderer <b'GDI Generic'>
[INFO ] [GL ] OpenGL parsed version: 1, 1
[CRITICAL ] [GL ] Minimum required OpenGL version (2.0) NOT found!
OpenGL version detected: 1.1
Version: b'1.1.0'
Vendor: b'Microsoft Corporation'
Renderer: b'GDI Generic'
Try upgrading your graphics drivers and/or your graphics hardware in case of problems.
The application will leave now.
[INFO][Kivy]v1.9.1
[INFO][Python]v3.4.4(v3.4.4:737efcadf5a6,2015年12月20日,20:20:57)[MSC v.1600 64位(AMD64)]
[信息][工厂]加载了179个符号
[信息][图像]提供商:img_-tex、img_-dds、img_-gif、img_-sdl2(img_-pil、img_-ffpyplayer忽略)
[信息][OSC]用于插座
[信息][窗口]提供程序:sdl2
[INFO][GL]GLEW初始化成功
[信息][GL]OpenGL版本
[信息][GL]OpenGL供应商
[INFO][GL]OpenGL渲染器
[信息][GL]OpenGL解析版本:1,1
[关键][GL]未找到所需的最低OpenGL版本(2.0)!
检测到OpenGL版本:1.1
版本:b'1.1.0'
供应商:b'Microsoft Corporation'
渲染器:b'GDI通用'
如果出现问题,请尝试升级图形驱动程序和/或图形硬件。
申请现在就要离开了。
然后弹出这个错误框:
我已经通过GPU Caps查看器检查了我的GPU的OpenGL版本,验证我是否达到了OpenGL版本2.1,但Kivy不知何故没有检测到OpenGL 2.1,而是默认为微软的GDI Generic。我在互联网上做了一些研究,发现解决这个问题的最好方法是从图形卡制造商那里更新图形卡的驱动程序,但这在我的情况下不起作用
我已经更新了我的图形驱动程序(我正在64位Windows 8上运行NVIDIA GeForce GT 435M)
我的问题是:有没有办法让Kivy从GDI通用驱动程序切换到NVIDIA驱动程序?或者其他地方有问题吗?这似乎是当前版本的kivy和中的已知错误。所以我想没有(简单的)方法来解决这个问题。切换回旧版本可能会有所帮助。我记得我通过更改屏幕的颜色深度(从16位更改为32位,反之亦然)解决了这个问题 在windows 7 pro 32位上添加
Config.set('graphics','multisamples','0')
为我解决了这个错误。(更新:这也适用于Windows 10。)
更改后,将正确报告OpenGL版本:
[INFO][GL]GLEW初始化成功
[信息][GL]OpenGL版本
将配置文件(%HOMEPATH%\.kivy\config.ini for me)中的多采样键值从multisamples=2更改为multisamples=0py3.5+的角度后端
pip install kivy.deps.angle
set KIVY_GL_BACKEND=angle_sdl2
它在Windows10及其解决方案上运行良好。多示例在我的情况下不起作用我使用的是Python 3.6和Windows 8.1。也适用于Windows 10。
此解决方案在大多数情况下都能解决问题:
.
1.右键单击这台电脑,然后打开属性
2.转到高级系统设置
3.单击环境变量
4.单击用户变量中的新建--
5.将KIVY\u GL\u后端放入变量名中 6.将角度\u sdl2放入变量值中
7. 重新启动Python 以下是YouTube视频,显示了以下步骤:
把这个放在你的代码中,它就会起作用 从kivy导入配置
Config.set('graphics', 'multisamples', '0')
如果仍然存在问题,请尝试以下方法:
导入操作系统
os.environ['KIVY\u GL\u BACKEND']='angle\u sdl2'
它对我很有用(Windows 10、OpenGL 3.1、Python 3.6)。首先,我使用的是Python 3.7 我首先按照下面的指示:
KIVY\u GL\u BACKEND
放入变量名中angle\u sdl2
放入变量值中from kivy import Config
Config.set('graphics', 'multisamples', '0')
import os
os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
import kivy
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text="Tech With Me")
if __name__== "__main__":
MyApp().run()
对于旧的嵌入式图形,如Windows 10上的英特尔GMA 965: 除了将多采样设置为0之外,
尝试使用pal1000修复工具
(和的更多信息)我正在用
pyinstaller
打包我的应用程序,上面的任何一个都不能在我的windows 10机器上运行Python应用程序
经过进一步研究,这就是解决我问题的方法
导航到应用程序(.exe
)所在的dist文件夹。
删除以应用程序名称命名的.manifest
文件,即(myappname.exe.manifest
)
错误现在应该消失了,就像90年代的机器一样,OPenGL将会被发现 尝试为用户添加环境变量 变量名-KIVY_GL_后端 可变值-角度_sd12
在pip或conda的虚拟环境中安装kivy时,我看到出现了此错误。作为一种快速解决方法,请尝试此方法
#保留这两行,直到找到真正的解决方案
导入操作系统
os.environ['KIVY\u GL\u BACKEND']='angle\u sdl2'
从kivy.app导入应用程序
App().run()
我遇到了与上述相同的问题。只需将angle\u sdl2
添加到用户环境变量中,就足以解决它对我有效的问题。以上任何一项都不适用于我。
当我使用:
os.environ['KIVY\u GL\u BACKEND']='angle\u sdl2'
我得到一个错误:
sdl2-运行时错误:b'无法初始化OpenGL/GLES库'
当我只使用:
Config.set('graphics','multisamples','0')
我得到:
OpenGL version detected: 1.1
Version: b'1.1.0'
Vendor: b'Microsoft Corporation'
Renderer: b'GDI Generic
它发生在安装了my App.exe的六个Mashine中的两个。我已尝试安装最新的软件包
OpenGL version detected: 1.1
Version: b'1.1.0'
Vendor: b'Microsoft Corporation'
Renderer: b'GDI Generic