Kivy error (python 2.7) : sdl2 import error

Problem

It is looking for the Kivy dependencies (e.g. sdl2) in your virtualenv.

Solution

I have encountered the same problem. I did the following and it solved the problem.

Environment

  • Windows 10
  • PyCharm Community
  • Python 3.5
  • Kivy dependencies installed (docutils, pygments, pypiwin32, kivy.deps.sdl2, kivy.deps.glew, kivy.deps.gstreamer) and for Python 3.5+ (kivy.deps.angle)

PyCharm IDE

  1. Open the project
  2. Click File
  3. Click Settings...
  4. Click Project Interpreter
  5. On the right panel, click the drop down list for Project Interpreter
  6. Select the location where the Python interpreter is installed e.g. C:\Users\user-name\AppData\Local\Programs\Python\Python35\python.exe
  7. Click OK until you exit the Settings window
  8. Run your program

Output

Img01 - SDL2 Error Img02 - Python Interpreter Settings Before Change Img03 - Python Interpreter Settings Changed Img04 - Run Kivy App Img05 - SDL2


if you have not installed all dependencies then the error will occur , Instead of Project Interpreter use the pycharm terminal Then install the following

1.python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*

  1. python -m pip install kivy_deps.gstreamer==0.1.*

  2. python -m pip install kivy_deps.angle==0.1.*

  3. python -m pip install kivy==1.11.1


Checked everything, reinstalled etc. still no luck, but after using the -d (debug) option the errormessage expanded and suggested there might be another sdl2.dll in the path. After some trial and error I found one in windows\system32. Moving it out of the way made the error disappear.


I tried running the app in virtual environment and it worked.


Lets be real, use a virtual environment. Kivys documentation even highly recommends this aswell.

Repeating this step always gives me a runnable kivy-example First uninstall all kivy-related librarys you already have installed.

python -m pip uninstall -y kivy.deps.glew kivy.deps.gstreamer kivy.deps.sdl2 kivy.deps.angle

Upgrade pip, wheel, setuptools and setuptools

python -m pip install --upgrade pip wheel setuptools virtualenv

Create a venv in your project folder and activate it

python -m virtualenv venv
venv\Scripts\activate 

(on bash put "source" in front.)

Install kivys dependecies to your virtual environment.

python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* 

If you want video and audio support:

python -m pip install kivy_deps.gstreamer==0.1.*

On Python 3.5+ you can opt to use Angle astead glew, so do either/or:

python -m pip install kivy_deps.glew==0.1.*
python -m pip install kivy_deps.angle==0.1.*

Install kivy

python -m pip install kivy==1.11.1 kivy_examples==1.11.1

After that do

python venv\share\kivy-examples\demo\showcase\main.py

Source: https://kivy.org/doc/stable/installation/installation-windows.html

If it still errors with "[CRITICAL] [App ] Unable to get a Window, abort.", CMD:

set USE_SDL2=1
set USE_GSTREAMER=1

Terminal:

export USE_SDL2=1
export USE_GSTREAMER=1