Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to get a window, abort

Tags:

python

kivy

I'm getting what seems to be a common error running the Kivy hello world program. I've tried the solutions I've seen here: manually install gstreamer, adding it to PATH and installing PySDL2. My OS is Windows 7, all other version info is in the error log.

# 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()

The error log:

[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 <thread> for socket
[INFO              ] [Window      ] Provider: sdl2
[INFO              ] [GL          ] GLEW initialization succeeded
[INFO              ] [GL          ] OpenGL version <3.1.0 - Build 8.15.10.2538>
[INFO              ] [GL          ] OpenGL vendor <Intel>
[INFO              ] [GL          ] OpenGL renderer <Intel(R) HD Graphics Family>
[INFO              ] [GL          ] OpenGL parsed version: 3, 1
[INFO              ] [GL          ] Shading version <1.40  - Intel Build 8.15.10.2538>
[INFO              ] [GL          ] Texture max size <8192>
[INFO              ] [GL          ] Texture max units <16>
[INFO              ] [Shader      ] fragment shader: <No errors.>
[INFO              ] [Shader      ] vertex shader: <No errors.>
[INFO              ] [Shader      ] program: <No errors.>
[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.
like image 769
foosion Avatar asked Nov 19 '16 21:11

foosion


4 Answers

In cmd go to python34 and then to Scripts and install the following:

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
like image 56
Suraj Kumar Avatar answered Nov 19 '22 05:11

Suraj Kumar


Try putting <python dir>\share\sdl2\bin to your path, it should do the trick. The thing is that it can't find the sdl2 binary it works with. There probably even isn't any PIL window provider, so using environment variable won't do a thing for creating a window (it'll be used as an image provider though).

I'm not really familiar with PySDL2, so I can't help you with that, however I made an installer for Kivy on Windows to make things easier for beginners.

There are basically two ways you'll end up with anyway:

  1. You'll put the bin folders to a PATH variable permanently

    I consider it really stupid unless you're sure you won't delete Python or the folder, otherwise you'll have a ghost folder in PATH + all other programs will have an access to files in bin folders via PATH

  2. You'll have a batch file that does that temporarily

    Only programs ran from the console/batch will have an access to the bin folder.

The installer does that for you and in fact does even installing from scratch (no Python) or many other things.

In case you haven't installed the Kivy dependencies, please do it first.

like image 20
Peter Badida Avatar answered Nov 19 '22 05:11

Peter Badida


Not sure about Windows or Linux, but on python-for-android at the very top you need to put:

#qpy:kivy
import kivy
kivy.require('1.10.1') # replace with your current kivy version !
like image 5
Robert Holmes Avatar answered Nov 19 '22 05:11

Robert Holmes


Disable the 3D acceleration and the 2D video acceleration in the display settings of the virtual software (aka vmbox, vmware). I think this will work for you , it works for me after lots of tries.

like image 3
Mahmoud Harb Avatar answered Nov 19 '22 03:11

Mahmoud Harb