Kivy не обнаруживает OpenGL 2.0
Я решил сделать некоторое программирование на кросс-платформе Kivy и успешно установить 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 ] [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.
И появляется это окно ошибки:
![Kivy Fatal Error]()
Я проверил версию OpenGL моего GPU через GPU Caps Viewer, проверив меня до версии OpenGL версии 2.1, но Kivy каким-то образом не обнаруживает OpenGL 2.1 и по умолчанию использует GDI Generic от Microsoft. Я провел некоторое исследование в Интернете и выяснил, что лучший способ решить эту проблему - обновить драйвер графической карты от производителя графической карты, но это не помогло мне.
Я обновил свои графические драйверы (я запускаю NVIDIA GeForce GT 435M на 64-битной Windows 8).
Мой вопрос: Есть ли способ, чтобы Kivy переключился с GDI Generic на драйвер NVIDIA? Или есть проблема где-то еще?
Ответы
Ответ 1
В Windows 7 про 32-битное добавление Config.set('graphics', 'multisamples', '0')
решило ошибку для меня. (Обновление: это также работает в Windows 10.)
import kivy
kivy.require('1.9.1') # replace with your current kivy version !
from kivy.app import App
from kivy.uix.label import Label
# add the following 2 lines to solve OpenGL 2.0 bug
from kivy import Config
Config.set('graphics', 'multisamples', '0')
class MyApp(App):
def build(self):
return Label(text='Hello world')
if __name__ == '__main__':
MyApp().run()
После изменения версия OpenGL сообщается правильно:
[INFO] [GL] Инициализация GLEW прошла успешно
[INFO] [GL] Версия OpenGL < 2.1.0 - Build 8.15.10.2281 >
Ответ 2
Угловой бэкэнд для py3.5 +
pip install kivy.deps.angle
set KIVY_GL_BACKEND=angle_sdl2
Он отлично работает на Windows 10 и его решении для вышеупомянутой проблемы. Мультисэмпл не будет работать в моем случае
Ответ 3
Я использую Python 3.6 и Windows 8.1. Работает на Windows 10 также.
Такое решение решает проблему в большинстве случаев:
,
1. Щелкните правой кнопкой мыши на этом ПК, затем откройте Свойства.
2. Перейдите в Расширенные настройки системы.
3. Нажмите на Переменные среды.
4. Нажмите New в пользовательских переменных для ---.
5. Поместите KIVY_GL_BACKEND в Имя переменной.
6. Поместите angle_sdl2 в значение переменной.
7. Перезапустите Python.
Вот видео на YouTube, показывающее эти шаги: https://www.youtube.com/watch?v=ATK9w2AiDeM
Ответ 4
Если проблема не устранена, попробуйте это:
import os
os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
у меня это сработало (win10, opengl3.1, py3.6)
Ответ 5
Это, кажется, известная ошибка в текущей версии kivy, и уже сообщается в своем трекер-проблеме. Поэтому я думаю, что нет (простого) способа решить эту проблему. Может помочь переход на более старую версию.
Ответ 6
Измените значение ключа multisamples в файле конфигурации (% HOMEPATH% \. kivy\config.ini для меня) от multisamples = 2 до multisamples = 0.
Ответ 7
поместите это в свой код, и он будет работать
из kivy import Config
Config.set('graphics', 'multisamples', '0')
Ответ 8
Для старой встроенной графики, такой как Intel GMA 965 в Windows 10:
в дополнение к установке мультисэмплов в 0,
попробуйте исправить инструмент по pal1000 https://github.com/pal1000/save-legacy-intel-graphics
(немного больше информации в https://community.khronos.org/t/i-have-opengl-3-1-but-kivy-says-that-i-have-only-1-1/103980/6 и fooobar.com/questions/17827403/...)
Ответ 9
Помню, что я работал над этой ошибкой, изменяя глубину цвета экрана (от 16 до 32 бит или наоборот).
Ответ 10
Прежде всего, я использую Python 3.7.
Сначала я следовал приведенным ниже инструкциям:
- Щелкните правой кнопкой мыши на этом ПК, затем откройте Свойства.
- Зайдите в Расширенные настройки системы.
- Нажмите на переменные среды.
- Нажмите на Новый в пользовательских переменных для ---.
- Поместите
KIVY_GL_BACKEND
в Имя переменной. - Поместите
angle_sdl2
в значение переменной. - Перезапустите Python
Затем я запускаю следующее в моей IDE на Windows 10, и это работает для меня
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()