No se puede obtener una ventana, abortar

Recibo lo que parece ser un error común al ejecutar el progtwig hello world de Kivy. He probado las soluciones que he visto aquí: instale gstreamer manualmente, agregándolo a PATH e instalando PySDL2 . Mi sistema operativo es Windows 7, toda la información de la otra versión está en el registro de errores.

 # you need this two lines: import os os.environ['KIVY_IMAGE'] = 'pil,sdl2' #kivy program from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello World') TestApp().run() 

El registro de errores:

 [INFO ] [Logger ] Record log in C:\Users\xyz\.kivy\logs\kivy_16-11-19_11.txt [INFO ] [Kivy ] v1.9.1 [INFO ] [Python ] v2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] [INFO ] [Factory ] 179 symbols loaded [INFO ] [Image ] Providers: img_pil, img_sdl2 (img_tex, img_dds, img_ffpyplayer, img_gif ignored) [INFO ] [Text ] Provider: sdl2 [INFO ] [OSC ] using  for socket [INFO ] [Window ] Provider: sdl2 [INFO ] [GL ] GLEW initialization succeeded [INFO ] [GL ] OpenGL version  [INFO ] [GL ] OpenGL vendor  [INFO ] [GL ] OpenGL renderer  [INFO ] [GL ] OpenGL parsed version: 3, 1 [INFO ] [GL ] Shading version  [INFO ] [GL ] Texture max size  [INFO ] [GL ] Texture max units  [INFO ] [Shader ] fragment shader:  [INFO ] [Shader ] vertex shader:  [INFO ] [Shader ] program:  [CRITICAL ] [Window ] Unable to find any valuable Window provider at all! sdl2 - AttributeError: tobytes File "C:\Program Files\python27\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib cls = cls() File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 138, in __init__ super(WindowSDL, self).__init__() File "C:\Program Files\python27\lib\site-packages\kivy\core\window\__init__.py", line 722, in __init__ self.create_window() File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 255, in create_window super(WindowSDL, self).create_window() File "C:\Program Files\python27\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:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 512, in __init__ self.filename = arg File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 700, in _set_filename mipmap=self._mipmap, nocache=self._nocache) File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 430, in load im = loader(filename, **kwargs) File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 198, in __init__ self._data = self.load(filename) File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 101, in load return list(self._img_read(im)) File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 86, in _img_read img_tmp.mode.lower(), img_tmp.tobytes()) File "C:\Program Files\python27\lib\site-packages\PIL\Image.py", line 514, in __getattr__ raise AttributeError(name) [CRITICAL ] [App ] Unable to get a Window, abort. Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored [CRITICAL ] [App ] Unable to get a Window, abort. 

En cmd, vaya a python34 y luego a Scripts e instale lo siguiente:

 pip install --upgrade pip wheel setuptools pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew pip install kivy.deps.gstreamer pip install kivy.deps.angle pip install kivy 

Intente poner \share\sdl2\bin en su ruta, debería hacer el truco. La cosa es que no puede encontrar el binario sdl2 con el que funciona. Probablemente ni siquiera haya un proveedor de ventanas PIL, por lo que el uso de la variable de entorno no hará nada para crear una ventana (aunque se usará como proveedor de imágenes).

Realmente no estoy familiarizado con PySDL2, así que no puedo ayudarte con eso, sin embargo, hice un instalador para Kivy en Windows para facilitar las cosas a los principiantes.

Básicamente hay dos formas con las que terminarás de todos modos:

  1. Pondrás las carpetas bin en una variable PATH permanentemente

    Considero que es realmente estúpido a menos que esté seguro de que no eliminará Python o la carpeta, de lo contrario tendrá una carpeta fantasma en PATH + todos los demás progtwigs tendrán acceso a los archivos en las carpetas de bin través de PATH

  2. Tendrás un archivo por lotes que hace eso temporalmente.

    Solo los progtwigs ejecutados desde la consola / lote tendrán acceso a la carpeta bin .

El instalador hace eso por usted y, de hecho, incluso la instalación desde cero (sin Python) o muchas otras cosas.

En caso de que no haya instalado las dependencias de Kivy, primero hágalo.

Desactive la aceleración 3D y la aceleración de video 2D en la configuración de pantalla del software virtual (también conocido como vmbox, vmware). Creo que esto funcionará para ti, funciona para mí después de muchos bashs.

No estoy seguro acerca de Windows o Linux, pero en python para Android, en la parte superior, debes poner:

 #qpy:kivy import kivy kivy.require('1.10.1') # replace with your current kivy version ! 

Acabo de encontrar una solución rápida

  1. Una vez que hayas instalado Kivy usando pip
  2. navegue a C: \ Users \ (nombre de cuenta) \. kivy \ y abra el archivo config.ini
  3. cambie las multisamples = 0 desde = 2 luego reinicie su computadora. Esto ahorrará otros problemas también como

[CRITICAL] [GL] ¡Versión mínima requerida de OpenGL (2.0) NO encontrada!

Esto me funcionó en windows 7 64 bit, python3.5 (32 bit) con Kivy versión 1.10.0