私は、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.
そして、このエラーボックスが飛び出します:
GPU Caps Viewerを使用してOpenGLバージョンのGPUを確認し、OpenGLバージョン2.1まで確認しましたが、KivyがOpenGL 2.1を検出せず、デフォルトでGDI Microsoftからのジェネリックです。インターネットで調査し、この問題を解決する最善の方法は、グラフィックカードの製造元からグラフィックカードのドライバーを更新することであることがわかりましたが、私の場合、これはうまくいきませんでした。
グラフィックドライバーを更新しました(64ビットWindows 8でNVIDIA GeForce GT 435Mを実行しています)。
私の質問は: KivyにGDI汎用ドライバーからNVIDIAドライバーに切り替えさせる方法はありますか?それとも他の場所に問題がありますか?
Windows 7 Pro 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バージョンは正しく報告されます。
[情報] [GL] GLEWの初期化に成功しました
[情報] [GL] OpenGLバージョン<2.1.0-ビルド8.15.10.2281>
Python 3.6とWindows 8.1を使用しています。Windows10でも動作します。
ほとんどの場合、このソリューションは問題を解決します:
。
1。 This PCを右クリックして、Propertiesを開きます。
2。 システムの詳細設定に移動します。
3。 環境変数をクリックします。
4。 ユーザー変数---の新規をクリックします。
5。 KIVY_GL_BACKENDを変数名に入れます。
6。 angle_sdl2を変数値に入れます。
7。 Pythonを再起動します。
これらの手順を示すYouTubeビデオは次のとおりです。 https://www.youtube.com/watch?v=ATK9w2AiDeM
Py3.5以降のAngleバックエンド
pip install kivy.deps.angle
set KIVY_GL_BACKEND=angle_sdl2
それは完全にwindows 10で動作し、上記の問題の解決策です。私の場合、マルチサンプルは機能しません
問題が解決しない場合は、次を試してください。
import os
os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
それは私のために働いた(win10、opengl3.1、py3.6)
構成ファイル(私にとっては%HOMEPATH%\。kivy\config.ini)のマルチサンプルキーの値をmultisamples = 2からmultisamples =に変更します。
まず、私はPython 3.7を使用しています。
私は最初に以下の指示に従いました:
KIVY_GL_BACKEND
変数名。angle_sdl2
in変数値。次に、私は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()
これは、kivyの現在のバージョンの既知のバグであるようです すでに問題トラッカーで報告されています 。したがって、この問題を解決する(簡単な)方法はないと思います。古いバージョンに戻すと役立つ場合があります。
これをあなたのコードに入れればうまくいくでしょう
kivy import Configから
Config.set('graphics', 'multisamples', '0')
Windows 10のIntel GMA 965などの古い組み込みグラフィックスの場合:
マルチサンプルを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 および https://stackoverflow.com/a/57406551/11284684 )