2016-11-23 2 views
1

Я начинаю с kivy. вот пример кода, который я запускаю.Kivy - windows - Невозможно найти ценного поставщика окон вообще

import kivy 
from kivy.app import App 
from kivy.uix.button import Label 
kivy.require('1.9.0') 


class HelloApp(App): 
    def build(self): 
     return Label(text='Hello World!') 

if __name__ == "__main__": 
    HelloApp().run() 

и вот отслеживающий я получаю:

[INFO    ] [Logger  ] Record log in C:\Users\monac\.kivy\logs\kivy_16-11-23_9.txt 
[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    ] [Text  ] Provider: sdl2 
[INFO    ] [OSC   ] using <thread> for socket 
[INFO    ] [Window  ] Provider: sdl2 
[INFO    ] [GL   ] GLEW initialization succeeded 
[INFO    ] [GL   ] OpenGL version <b'4.5.0 NVIDIA 373.06'> 
[INFO    ] [GL   ] OpenGL vendor <b'NVIDIA Corporation'> 
[INFO    ] [GL   ] OpenGL renderer <b'GeForce GTX 960M/PCIe/SSE2'> 
[INFO    ] [GL   ] OpenGL parsed version: 4, 5 
[INFO    ] [GL   ] Shading version <b'4.50 NVIDIA'> 
[INFO    ] [GL   ] Texture max size <16384> 
[INFO    ] [GL   ] Texture max units <32> 
[WARNING   ] [Image  ] Unable to load image <C:\Python34\lib\site-packages\kivy\data\glsl\default.png> 
[CRITICAL   ] [Window  ] Unable to find any valuable Window provider at all! 
sdl2 - Exception: SDL2: Unable to load image 
    File "C:\Python34\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib 
    cls = cls() 
    File "C:\Python34\lib\site-packages\kivy\core\window\window_sdl2.py", line 138, in __init__ 
    super(WindowSDL, self).__init__() 
    File "C:\Python34\lib\site-packages\kivy\core\window\__init__.py", line 722, in __init__ 
    self.create_window() 
    File "C:\Python34\lib\site-packages\kivy\core\window\window_sdl2.py", line 255, in create_window 
    super(WindowSDL, self).create_window() 
    File "C:\Python34\lib\site-packages\kivy\core\window\__init__.py", line 897, in create_window 
    self.render_context = RenderContext() 
    File "kivy\graphics\instructions.pyx", line 756, in kivy.graphics.instructions.RenderContext.__init__ (kivy\graphics\instructions.c:10729) 
    File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 512, in __init__ 
    self.filename = arg 
    File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 700, in _set_filename 
    mipmap=self._mipmap, nocache=self._nocache) 
    File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 430, in load 
    im = loader(filename, **kwargs) 
    File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 198, in __init__ 
    self._data = self.load(filename) 
    File "C:\Python34\lib\site-packages\kivy\core\image\img_sdl2.py", line 42, in load 
    raise Exception('SDL2: Unable to load image') 

[CRITICAL   ] [App   ] Unable to get a Window, abort. 
Exception ignored in: 'kivy.properties.dpi2px' 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\kivy\utils.py", line 513, in __get__ 
    retval = self.func(inst) 
    File "C:\Python34\lib\site-packages\kivy\metrics.py", line 175, in dpi 
    EventLoop.ensure_window() 
    File "C:\Python34\lib\site-packages\kivy\base.py", line 126, in ensure_window 
    sys.exit(1) 
SystemExit: 1 
[CRITICAL   ] [App   ] Unable to get a Window, abort. 

Я бегу на окнах 10 64бит. Я установил все зависимости, кроме gstreamer, которые мне не нужны в данный момент.

Я также не знаю, почему я получаю эту ошибку:

[WARNING   ] [Image  ] Unable to load image <C:\Python34\lib\site-packages\kivy\data\glsl\default.png> 

файла существует, и я бег моего кода, как администратор, чтобы избежать проблем с правами доступа.

спасибо.

+0

у вас есть «pygame»? – Juggernaut

+0

@AminEtesamian, Нет. Но для этой версии киви это не требуется. –

+0

Я уже сталкивался с этой ошибкой, и решение заключалось в установке pygame. Я знаю, что поставщик экрана - это sdl2, но это сработало для меня – Juggernaut

ответ

0

Вы должны установить зависимости для Kivy.

Следуйте инструкциям here

python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew 

будет делать то, что вам нужно.

+0

не сделал трюк – cIph3r

0

Я ударил эту же ошибку после установки kivy и ее зависимостей до создания моего virtualenv с помощью --system-site-packages. Чтобы решить эту проблему, мне пришлось покинуть виртуальный диск, удалить все пакеты kivy, ввести мой virtualenv и переустановить.

0

В настройках дисплея виртуального программного обеспечения (aka vmbox, vmware) отключите трехмерное ускорение и ускорение 2D-видео. Я думаю, что это сработает для вас, это работает для меня после многих попыток.