2017-06-15 13 views
0

私はkivyをダウンロードしました。Python Kivyがウィンドウで動作していない

python -m pip install Kivy 

私は簡単な例を見つけましたが、動作しません。エラーはUnable to find any valuable Window provider.です。既にインストールしようとしましたpygletpygameglfwpyopenglcythonです。私もsdl2.dllをダウンロードし、pythonファイルの隣に置いた。

コード

import kivy 

from kivy.app import App 
from kivy.uix.label import Label 


class MyApp(App): 

    def build(self): 
     return Label(text='Hello world') 


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

スタックトレース

[INFO ] [Logger  ] Record log in C:\Users\Administrator\.kivy\logs\kivy_17-06-15_5.txt 
[INFO ] [Kivy  ] v1.10.0 
[INFO ] [Python  ] v3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] 
[INFO ] [Factory  ] 194 symbols loaded 
[INFO ] [Image  ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored) 
[INFO ] [Text  ] Provider: pil(['text_sdl2'] ignored) 
[CRITICAL] [Window  ] Unable to find any valuable Window provider. 
sdl2 - ImportError: DLL load failed: The specified module could not be found. 
File "d:\...\kivy\core\__init__.py", line 59, in core_select_lib 
    fromlist=[modulename], level=0) 
File "d:\...\kivy\core\window\window_sdl2.py", line 26, in <module> 
    from kivy.core.window._window_sdl2 import _WindowSDL2Storage 

[CRITICAL] [App   ] Unable to get a Window, abort. 
Exception ignored in: 'kivy.properties.dpi2px' 
Traceback (most recent call last): 
File "d:\...\kivy\utils.py", line 496, in __get__ 
    retval = self.func(inst) 
File "d:\...\kivy\metrics.py", line 174, in dpi 
    EventLoop.ensure_window() 
File "d:\...\kivy\base.py", line 127, in ensure_window 
    sys.exit(1) 
SystemExit: 1 
[CRITICAL] [App   ] Unable to get a Window, abort. 

答えて

0

Kivy依存関係を明示的にインストールする必要があります。

pip install kivy kivy.deps.sdl2 kivy.deps.glew 

コード例:

import struct 

from kivy.app import App 
from kivy.graphics import Callback 
from kivy.uix.widget import Widget 

import ModernGL 


class CustomWidget(Widget): 
    def __init__(self, **kwargs): 
     super(CustomWidget, self).__init__(**kwargs) 

     with self.canvas: 

      self.ctx = ModernGL.create_context() 

      self.vert = self.ctx.vertex_shader(''' 
       #version 330 

       in vec2 vert; 

       void main() { 
        gl_Position = vec4(vert, 0.0, 1.0); 
       } 
      ''') 

      self.frag = self.ctx.fragment_shader(''' 
       #version 330 

       out vec4 color; 

       void main() { 
        color = vec4(0.30, 0.50, 1.00, 1.0); 
       } 
      ''') 

      self.prog = self.ctx.program([self.vert, self.frag]) 

      self.vbo = self.ctx.buffer(struct.pack('6f', 0.0, 0.8, -0.6, -0.8, 0.6, -0.8)) 
      self.vao = self.ctx.simple_vertex_array(self.prog, self.vbo, ['vert']) 

      self.draw() 

      Callback(self.draw) 

    def draw(self, *args): 
     self.ctx.clear(0.9, 0.9, 0.9) 
     self.vao.render() 

    def ask_update(self, *largs): 
     self.canvas.ask_update() 


class MainApp(App): 

    def build(self): 
     self.root = root = CustomWidget() 
     return root 


if __name__ == '__main__': 
    MainApp().run() 
関連する問題