Quick search

Table Of Contents

Kivy framework

Kivy is an open source library for developing multi-touch applications. It is cross-platform (Linux/OSX/Windows/Android/iOS) and released under the terms of the MIT License.

It comes with native support for many multi-touch input devices, a growing library of multi-touch aware widgets and hardware accelerated OpenGL drawing. Kivy is designed to let you focus on building custom and highly interactive applications as quickly and easily as possible.

With Kivy, you can take full advantage of the dynamic nature of Python. There are thousands of high-quality, free libraries that can be integrated in your application. At the same time, performance-critical parts are implemented using Cython.

See for more information.


Require can be used to check the minimum version required to run a Kivy application. For example, you can start your application code like this:

import kivy

If a user attempts to run your application with a version of Kivy that is older than the specified version, an Exception is raised.

The Kivy version string is built like this:


X is the major version
Y is the minor version
Z is the bugfixes revision

The tag is optional, but may be one of ‘dev’, ‘alpha’, or ‘beta’. The tagrevision is the revision of the tag.


You must not ask for a version with a tag, except -dev. Asking for a ‘dev’ version will just warn the user if the current Kivy version is not a -dev, but it will never raise an exception. You must not ask for a version with a tagrevision.


Call post-configuration of Kivy. This function must be called if you create the window yourself.


Register a function to be called when kivy_configure() is called.


Internal use only.

kivy.kivy_options = {'audio': ('gstplayer', 'pygame', 'ffpyplayer', 'sdl2', 'avplayer'), 'camera': ('opencv', 'gi', 'avfoundation', 'android', 'picamera'), 'clipboard': ('android', 'winctypes', 'xsel', 'xclip', 'dbusklipper', 'nspaste', 'sdl2', 'pygame', 'dummy', 'gtk3'), 'image': ('tex', 'imageio', 'dds', 'sdl2', 'pygame', 'pil', 'ffpy', 'gif'), 'spelling': ('enchant', 'osxappkit'), 'text': ('pil', 'sdl2', 'pygame', 'sdlttf'), 'video': ('gstplayer', 'ffmpeg', 'ffpyplayer', 'null'), 'window': ('egl_rpi', 'sdl2', 'pygame', 'sdl', 'x11')}

Global settings options for kivy

kivy.kivy_base_dir = '/home/travis/build/kivy/kivy/kivy'

Kivy directory

kivy.kivy_data_dir = '/home/travis/build/kivy/kivy/kivy/data'

Kivy data directory

kivy.kivy_shader_dir = '/home/travis/build/kivy/kivy/kivy/data/glsl'

Kivy glsl shader directory

kivy.kivy_icons_dir = '/home/travis/build/kivy/kivy/kivy/data/icons/'

Kivy icons config path (don’t remove the last ‘’)

kivy.kivy_home_dir = ''

Kivy user-home storage directory

kivy.kivy_config_fn = ''

Kivy configuration filename

kivy.kivy_usermodules_dir = ''

Kivy user modules directory