[ANN] Kivy 1.8.0 released

6,545 views
Skip to first unread message

Mathieu Virbel

unread,
Jan 31, 2014, 2:38:42 PM1/31/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi everyone,

We are pleased to announce Kivy 1.8.0.

Kivy is a full featured framework for creating novel and performant
user interfaces, such as multitouch applications, released under the
MIT license. The framework works on Windows, OSX, Linux, Android and
iOS and RaspberryPi.

This is the first release of Kivy with Python 3.3 and 2.7 support.

All downloads are available on the website:


Main features of this release we want to highlight:

- Python 3.3 support: It's finally here, using the same codebase! And
  we deliver also 3 portables for Windows, one that package Python 2.7
  and another with Python 3.3!

- New media player named GstPlayer, based on Gstreamer 1.0. This
  player is currently used as a implementation for Audio and Video
  core provider. This allow us to not only use the latest Gstreamer
  and all the improvements done by them, but also have a common player
  for both Python 2.7 and 3.3 on desktop platforms.

- Scrollview has been slightly enhanced to support smoother scrolling
  utilizing Matrix transformation by default. It also now supports
  scrolling through bars or content or both.

- Widgets now can be disabled simply by using `disabled` property.

- Textinput now has support for selection handles.

- New Widgets!

  - ActionBar: Mimics Android’s own ActionBar appearance and
    mechanisms
  - Behaviors: ButtonBehavior, ToggleButtonBehavior, DragBehavior,
    just subclass a behavior to an existing widgets, and you get the
    behavior! (eg. class ImageButton(ButtonBehavior, Image))
  - PageLayout: A simple multi-page layout allowing flipping through
    pages using borders
  - SandBox (experimental): Runs itself and its children in an
    exception-catching sandbox


Changelog - 1.8.0
=================

- Python 3.3 compatibility

Core
----

  - [#1631] Extend core_select_lib to be used for other libs other
    than just kivy.core
  - [#1678] Gracefully exit if no core provider is found
  - [#1740] Dynamically lookup the class when a string is set for
    various widget with _cls properties

  Audio

  - [#1196] Fix sound looping issues
  - [#1209] Fix audio issues on iOS
  - [#1311, #1269] Fix volume property
  - New GstPlayer backend

  Camera

  - [#1369, #1053, #65] New avfoundation Camera provider for Mac OSX

  Clipboard

  - Introduce native clipboard provider for Android
  - Add only the correct provider depending on the platform

  Image

  - [#1696] Improve reload of images on context reload
  - [#1809] Use resource_find to load images
  - Image/texture: add `flipped` parameter for `save` method

  Text

  - [#1186] Various fixes for managing proper GL reload on GL context
    change
  - [#1274] Fix unicode handling in shorten routine
  - [#1334] Make shorten work with single words
  - [#1376] Label: add `max_lines` to limit the number of lines
    rendered in a label
  - [#796] Pygame provider: Try to use ftfont before font
  - Fix for handling unicode font names

  Video

  - [#1490] Fix detection or uri
  - Introduce GstPlayer backend replacing pygst and pygi
  - Make sure video stop and play works on Windows

  Window

  - [#1253] Change default clearcolor to (0, 0, 0, 1)
  - [#1408] Avoid multiple binding to keyboard
  - [#1455, #1711] Improve screenshot method
  - [#1667] Fix bad-looking icon on Windows 7
  - [#1830] X11 window provider improvements. Introduction of
    KIVY_WINDOW_ABOVE and NETWM_PID
  - Fix handling of escape key

Base
----

  App

  - [#1233] Fix title change not reflecting on ui after `build`
  - [#1546] Raise a default exception when app.root is not of type
    `Widget`
  - Adds new methods to display/configure Settings panel
  - New properties for configuring Kv file search
  - Changed to consistently use Properties for configuration

  Animation

  - [#1547, #1682] Avoid duration=0 animations from crashing the app
  - Fix leak caused by cancel() not releasing widget reference

  Atlas

  - [#1285] Allow generation of an atlas with path info in the ids
    from the command line
  - Update command line to allow padding and size specification with
    "WIDTHxHEIGHT"

  Config

  - Various fixes for default values on Windows and Linux.
  - [#1084] Fix for allowing unicode string / path in Settings
  - [#1537] Add option to not exit app on escape

  Clock

  - New properties for tracking frame time
  - Introduce @mainthread decorator for working with threads
  - Allow clock events to be canceled, utilizing `cancel` method

  EventDispatcher

  - [#1315] Make sure disabling multi-touch emulation works
  - [#1335] Fix touch ring persistence when using multiple virtual
    keyboards
  - [#1338] Reverse the order of dispatching event stack
  - Introduce `events` and `get_property observers()` method that
    returns a dict of properties/events and a list of methods that are
    bound to them

  Factory

  - [#1223] Allow unregistering of widgets
  - [#1726, #1729, #1277] Raise appropriate error when trying to
    access a non-existent class

  Gesture

  - [#1790] Use BytesIO for internal encoding/compression instead of
    StringIO

  Graphics

  - [#1199] Fix Python Bindings
  - [#1337] Allow graphics instructions to be animated
  - [#1345] Allow 3D picking
  - [#1393] Texture fix repeating texture loss while GL context reload
  - [#1422] FBO use memoryview instead of buffer
  - [#1488] Added VBO support for glDrawElements and glVertexAttribute
  - [#1529] Ellipse - Faster algorithm when drawing circle
  - [#1551] Introduce segment_intersection
  - [#1671] Support member for origin in rotate constructor
  - [#1723] Use ctypes to display a dialog on win32 instead of win32ui
  - [#955] Correctly deallocate shader sources
  - Force npot texture allocation with GPUs that only support npot
  - Shaders: Fix loss of precision that breaks rendering
  - Shaders: Support array

  Lang

  - [#1028, #1734, #302] Allow app.kv_directory to work
  - [#1234] Use resource_find to find the filename
  - [#1388] Fix various memory leaks
  - [#1519] Instead of creating an ObjectProperty for every new
    property declared in Kv lang, detect it’s type and instantiate
    relevant Numeric/String/List/DictProperty
  - [#991] Add warning if Kv file is loaded multiple times
  - Allow `_` to be checked as if it was a key.value property

  Logger

  - [#1721] Python3 compatibility fixes
  - [#825] Ensure arguments to the logger are strings
  - Force logging.root to use Kivy Logger instance. Fixes infinite
    loop

  Network

  - [#1248] Introduce `decode` property. Makes decoding optional
  - [1316, #1224, #1221, #1286] UrlRequest: various improvements
  - [#1457] Make sure parameters aren’t removed
  - [#1719] OSC: Fix usage for client
  - Introduce `file_path` argument

  Properties

  - [#1243] Make BoundedNumeric Property more accurate
  - [#1389] Allow individual elements of ReferenceListProperty to be
    changed
  - [#1468] Stop DictProperty from deleting key if value is None
  - Introduce `VariableListProperty`
  - Properly return result in ObservableDict.setdefault

Input
-----

  - [#1119] Fix touch offset on various touch screen hardware
  - [#1489] New input provider for Leap Motion
  - Add support for tuio/2dblb(CCV 15)
  - Introduce MotionEvent.`last__motion_event`

  PostProc

  - [#1204] Fix double tap and triple tap detection
  - [#1348] Fix double and triple tap detection on Windows


Modules
-------

  - [#1668] Add late configuration if module has been added manually
    before the window creation

  Inspector

  - [#1549, #1684] Fix inspection of elements in popup. by looking at
    ModalView before other elements
  - [#1361, #1365] Allow position of inspector to be adjustable

  Recorder

  - [#1800] Introduce `F6` shortcut to play last record in a loop

  Screen

  - [#1448] Add support for scale
  - [#1687, #1686] Fix all resolutions to be landscape
  - Remove 25dp from height to simulate the Android systemui bar

  WebDebugger

  - [#1819] WebDebugger: Display instant value of each box

Widgets
-------

  - [#1238] PageLayout: A simple multi-page layout allowing flipping
    through pages using borders
  - [#1264] ActionBar: Mimics Android’s own ActionBar appearance and
    mechanisms
  - [#1471] Behaviors: ButtonBehavior, ToggleButtonBehavior
    ,DragBehavior
  - SandBox (experimental): Runs itself and its children in an
    exception-catching sandbox

  Accordion

  - [#1249] Stop empty accordion from accessing it’s first child
  - [#1340] Fix select method

  Bubble

  - [#1273] Honor `arrow_pos` when passed as a arg in constructor.
  - Introduce`show_arrow` property

  Button

  - [#1212] Introduce `trigger_action()` for triggering the button
    programmatically

  Carousel

  - Introduce `load_slide` method to animate the provided slide in/out
  - Introduce `anim_type` property to be able to choose the type of
    animation

  CheckBox

  - [#1695] Fix active state in group

  CodeInput

  - Minor rendering fixes
  - Use MonoSpace font by default

  Dropdown

  - Delay container binding, allow it to be used in Kv
  - [#1450] Introduce `on_dismiss` event
  - Pressing escape when dropdown is active now dismisses the dropdown
  - Make auto-dismiss of dropdown optional. Introduces `auto_dismiss`
    property

  FileChooser

  - [#1476] Fix inability to browse up to the root path
  - [#1758] Prevent infinite loop
  - [#1780] Fix incorrect selections caused by touch offset
  - [#1818, #1829] Fix unicode issues. Now, path defaults to a unicode
    string
  - Abstracted filesystem access
  - If a path is expected to contain non unicode-decodable characters,
    a bytes path string should be used. Otherwise, unicode paths are
    preferred

  Image

  - [#1561] Don’t crash if an invalid image is loaded

  ListView

  - [#1303, #1304] Set ListItemButton background_color
  - [#1396, #1397] Accepts objects inheriting from list or tuple in
    SimpleListAdaptor
  - [#1788] Fix None, int comparison

  Popup

  - Introduce `title_color` property

  Progressbar

  - Avoid dev/zero when max is zero

  RstDoc

  - Introduce `background_color` property

  Scatter

  - [#1459] Minor fixes for scaling
  - [#1797] Fix div by 0 issue where touch itself was chosen as anchor
  - [#947] Fix scale being dispatched again due to error in floating
    point calculation
  - Various fixes for transformation

  ScreenManager

  - [#1750] Add NoTransition transition
  - [#573, #1045] Introduce `switch_to` method fixes for
  - Fix Shader-based transitions, allowing them to work in
    non-fullscreen mode
  - New Screen transitions, mimicking Android
  - Reduce default transition duration and set default transition to
    SlideTransition
  - Set clear color to be transparent

  ScrollView

  - [#1387] Show scrollbars only when viewport is scrollable
  - [#1463] Refactor kinect constants
  - [#1478, #1567] Introduce bars scrolling for desktop type behavior
  - [#1604] Fix overscroll on low FPS
  - Accelerated scrolling by default using Matrix instead of moving
    the child
  - Introduce `bar_pos`, `bar_side_x` and `bar_side_y` properties
    allowing the user to control where the the bars are displayed
  - Introduce `scroll_wheel_distance` property

  Slider, Spinner

  - DPI fixes making the widget aware of screen metrics

  Splitter

  - [#1655, #1658] Make double tap on border alternate between max/min
    size
  - [#1656, #1672, #1673, #1810, #1812] Miscellaneous fixes
  - [#1657] Don’t allow negative sizes
  - Make sure splitter remains between min/max_size when these
    properties are changing

  Settings

  - [#1228] Fix for allowing unicode path
  - [#1556] Made SettingsString textinput scale independent
  - [#1590] Prevent import of SettingsWithSpinner when custom class is
    used
  - Fixes for SettingsPanel that allows it to adjust to mobile screens
  - Fix handling of numeric input
  - Made various behaviors (settings popups, fonts) more scale
    independent
  - Make the default tab active in SettingsWithTabbedPanel
  - Now includes different Settings widgets, suitable for different
    devices

  StackLayout

  - [#1390] Simply `do_layout`

  TabbedPanel

  - [#1402] Introduce `strip_image` and `strip_border` properties to
    allow skinning the TabbedPanelStrip
  - [#1799] Honor index while inserting TabbedPanelHeader
  - Fix bug when selected tab is removed before switching to it

  TextInput

  - [#1496] Introduce `allow_copy`,  to allow the user to choose
    whether Textinput allows copy or not
  - [#1632, #1717] Fixes for selection offset issues
  - [#1639, #1500] Make sure cursor remains inside TextInput
  - [#1647] Introduction of  Handles for selection on mobile enabled
    by `use_handles`property
  - [#1697] Introduce `Keyboard_mode` to allow custom management of
    keyboard
  - [#1702] `copy`, `cut`, `paste` methods to allow the user to manage
    clipboard operations
  - [#1774] Fixes for voice input
  - Introduce `line_spacing`
  - Introduce `minimum_height` property to be used in conjunction with
    scrollview
  - Introduction of `input_type` property that is used to specify the
    kind of IME to request from the OS
  - Introduction of `keyboard_suggestion` allowing native keyboards on
    Android to show word suggestions
  - Various fixes for cut/copy/paste
  - Various `Unicode` fixes. Textinput now maintains a unicode
    sandwich

  Videoplayer

  - [#1275] Fix looping
  - [#1823] Ensure vdeo is loaded before loading the state

  Vkeyboard

  - [#958] Fix custom layout usage
  - [#1333] Don’t dispatch touch to other widgets while moving
  - [#1404] Introduce dual keyboard mode `systemanddock`and
    `systemandmulti`
  - `Layout` property can directly point to a JSON file name now

  Widget

  - [#1209] Introduce `disabled` property
  - [#1452] Add children= argument to clear_widgets()

Platforms
---------

  RaspberryPi

  - [#1241] Fix installation of vidcore_lite for RPi
  - Add support for “relative” hid input as mouse
  - Fix configuration generation, and fix hidinput provider for
    multitouch hardware
  - Introduce new window provider specifically for RPi

Tools
-----

  - [#1352] Improvements to highlighting file for emacs
  - [#1527, #1538] Move Kivy Garden to it’s own repository
  - [#1807] support for using hidinput to display mouse cursor
  - Make Garden Tool Python 3 compatible

Doc
---

  - Tons of doc fixes thanks to the awesome community
  - Special Thanks to ZenCODE for his awesome work on improving the
    doc

Examples
--------

  - Various redesign, fixes and improvements making examples fit
    better on mobile
  - New Kivy Showcase, designed to fit much better on mobile devices
  - New `Take Picture` example to demonstrate how to use
    startActivtyForResult and how to get the result with
    python-for-android android.activity module
  - Rework compass example to work with py4a and remove all broken
    code

Unit Tests
----------

  - [#1226] New test for testing unicode font names
  - [#1544] Add unit tests for Vector class
  - [#1828] Unicode Filechooser tests
  - [#823] Add test case for issue
  - Improve tests with new proxy_ref
  - Various tests introduced to test Python3 port

Packaging
---------

  - Tons of fixes and new packages for Python 3
  - [#1540] Various fixes for Windows launcher
  - [#1599] Various fixes for installation on 32 bit Mac OSX

Tons of more fixes that weren’t mentioned here, details of which can


Migration
=========

Kv leaks
--------

Thanks to the community, more fixes are included in 1.8.  Some fixes
were already pushed in the stable version, change is that `id` in the
KV language and `ids` in Python don't use direct-referencing to
widgets anymore.
We are working on eliminating leaks when using the Kv language under

Have a look at this code::

    <CustomWidget>:
        layout: myboxlayout
        BoxLayout:
            id: myboxlayout

The CustomWidget.layout is an ObjectProperty, and before 1.8.0
we were assigning a direct reference of the BoxLayout to the layout
property. Such a loop would not get garbage collected correctly.
Now, the same code will assign a weak-reference instead of the
direct reference.

What's the difference ?

    cw = CustomWidget()
    # at this point, the BoxLayout instance is referenced twice:
    # 1. one direct reference in cw.children, and
    # 2. one weak-reference in cw.layout

    cw.remove_widget(cw.layout)
    # now, there is no direct reference to the boxlayout anymore.
    # cw.layout is now a dead weak-reference.

If you want a direct reference no matter what, use Widget.__self__
(id.__self__ in this example). If you want a weak-reference of a widget,
use Widget.proxy_ref (simply id, in this example). In this
example, if you want to be able to remove it without losing the
boxlayout, do::

    <CustomWidget>:
        layout: myboxlayout.__self__
        BoxLayout:
            id: myboxlayout

Please note that accessing the weak-reference of a widget or direct
reference is the same.

We hope this will not cause you too much trouble :)

Branching
---------

The new stable branch is now derivated from 1.8.0 tag. The oldest
stable branch have been renamed to stable-1.7.x. If you still want to
compile on android with this branch, use "kivy==stable-1.7.x" as
requirement. We do not give support for previous version, so if things
doesn't work anymore because we enhance python-for-android as well,
please take time to update your application.


Thanks
======

A big thanks to all of the Contributors, especially those github
usernames mentioned here:

Aaron1011, abhijhangda bob-the-hamster, rogererens, jboy, sky,
ire-and-curses, okr, ivpusic, KristerV,  robertour, filssavi, encukou,
peristeri, audreyer, nskrypnik, dkmadigan, RenWenshan, jegger,
rentouch, blarghmatey, G.Tjebbes, eulerreich, rtsh, prtksxna,
intchanter, pkor, aspidites, eventh, Karl Sander, ilfirin-ms, dgym,
chozabu, voen, wesix, vernondcole, akloster, MiyamotoAkira, gitshub,
dami0, mid-kid, karlsander, aklloster, remip, alanjds, Zachary
Spector, LogicalDash, Nexc, M. Dietrich, Edoardo Spadoni, Martin,
Thopiekar, emdete, edoz78, tohin, lqez, Jeff Kries, k4rtik, b3ni.

Hope we mentioned them all.

Special thanks to Ian Foote (Quartic), Richard Larkin (ZenCODE),
Alexander Taylor (inclement), Ben Rousch (brousch), Matthew Einhorn
(matham) for this release!

--
Kivy Team

Olli Wang

unread,
Feb 1, 2014, 2:29:56 AM2/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Nice job. Does Python 3 support also work on kivy-ios and python-for-android?

Mathieu Virbel

unread,
Feb 1, 2014, 2:57:29 AM2/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Not yet, but this is the next logical step :)

Kadir Çakır

unread,
Feb 1, 2014, 6:28:09 AM2/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Finally! I love you!

mpad

unread,
Feb 1, 2014, 11:48:47 AM2/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hello,

Thanks for the new version.
But I get cython compilation errors on linux (wether starting from the tar.gz or using pip) :

 Error compiling Cython file:

 ------------------------------------------------------------

 ...

             g_object_set_double(self.playbin, 'volume', volume)



     def get_duration(self):

         cdef float duration

         with nogil:

             duration = self._get_duration() / float(GST_SECOND)

                                            ^

 ------------------------------------------------------------



 kivy/lib/gstplayer/_gstplayer.pyx:325:44: Pythonic division not allowed without gil, consider using cython.cdivision(True)


Is there something special to be done with the setup ?

mpad

mpad

unread,
Feb 1, 2014, 11:59:43 AM2/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Ok, I had cython 0.18.
Compilation works with cython 0.20.

Thanks again for kivy !

Kurt Dally

unread,
Feb 6, 2014, 9:01:35 AM2/6/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com
I'm on mint 15 (ubuntu raring) using the stable PPA and the update, to 1.8 is not showing?  Do I need to go to daily?

qua-non non

unread,
Feb 6, 2014, 3:19:24 PM2/6/14
to kivy-...@googlegroups.com
Try and update the repo, or directly download from the repo.


On Thu, Feb 6, 2014 at 7:31 PM, Kurt Dally <thedome...@yahoo.com> wrote:
I'm on mint 15 (ubuntu raring) using the stable PPA and the update, to 1.8 is not showing?  Do I need to go to daily?

--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

caribsnake

unread,
Feb 7, 2014, 10:34:35 AM2/7/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
I was just testing some software I was working on ... no problems ... performed the updates to my Ubuntu 12.04 install.  This included the updates to kivy.
Now, my code fails to execute ... and so do simple examples from Ulloa's "Kivy:Interactive Applications in Python"
Below is the complaint for executing the first (simple hello) example in the book:

 Traceback (most recent call last):
   File "hello.py", line 13, in <module>
     HelloApp().run()
   File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 792, in run
     runTouchApp()
   File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 445, in runTouchApp
     p = provider(key, args)
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 118, in __new__
     instance.__init__(device, args)
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 155, in __init__
     self.probe()
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 162, in probe
     x.has_capability(ABS_MT_POSITION_X)]
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 91, in has_capability
     capabilities = self.get_capabilities()
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 81, in get_capabilities
     long_bit = getconf("LONG_BIT")
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/probesysfs.py", line 95, in getconf
     output = Popen(["getconf", var], stdout=PIPE).communicate()[0]
   File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
     errread, errwrite)
   File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
     raise child_exception
 OSError: [Errno 9] Bad file descriptor

doing 'apt-get build-dep python-kivy' yields:

Reading package lists... Done
Building dependency tree      
Reading state information... Done
Picking 'kivy' as source package instead of 'python-kivy'
E: Build-Depends dependency for kivy cannot be satisfied because the package cython3 cannot be found

I can't find a 'cython3' either.  Any hints on next step?

caribsnake

unread,
Feb 7, 2014, 11:30:45 AM2/7/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com

OOPS ... wasn't a python or a kivy problem ... the update messed up some nvidia drivers.  All's well.
Sorry.

DMB

unread,
Feb 17, 2014, 10:17:17 AM2/17/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi,

Just noting that you have changed widget.center to an ObservablePropertyList and have potentially broken every app that was storing previous values of widget's center positions since they are now changed when widget.center changes.

On kivy 1.7:

       whatever = widget.center
       widget.center = (123, 456)
       # whatever is unchanged

On kivy 1.8:

      whatever = widget.center
      widget.center = (123, 456)
      # whatever is now (123, 456) potentially breaking all code that was expecting whatever to be unchanged

Was this intended? 

DMB

unread,
Feb 17, 2014, 10:18:39 AM2/17/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
I meant ObservableReferenceList. *sigh*

Emilio S Grisolía

unread,
Feb 22, 2014, 11:06:37 AM2/22/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Excuse me, I'm trying to get started with Kivy and Linux (first time trying Linux). I've been reading some coments, and I have a question -since i don't understand english very well-: is Kivy compatible wih Python 3.3? It's Kivy installed like "another" Python, or its like any other framework? I mean, if I install Kivy, and go to Python3 interpreter, can I use kivy from there?
Thanks :) 

Alexander Taylor

unread,
Feb 22, 2014, 11:45:10 AM2/22/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
The newest version of kivy, 1.8, is compatible with python3.3.

Kivy is just python and cython modules, so yes you can install it just like any other python module, it doesn't need its own special interpreter. The official kivy windows (and maybe osx?) package does bundle kivy with an interpreter and some other stuff like pygame, but this is because it can be difficult to independently compile these dependencies on windows.

So no, kivy is not 'another' python, it's just like any other framework.

Emilio S Grisolía

unread,
Feb 22, 2014, 3:50:37 PM2/22/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
And for developing android applications? I'm reading this http://kivy.org/docs/guide/packaging-android.html and it says that I need Python 2.7... it isn't anyway to develop android apps on Python 3?

qua-non non

unread,
Feb 22, 2014, 11:59:16 PM2/22/14
to kivy-...@googlegroups.com
@Emilio The py4a sister project is still using python2.7.x. This will
be remedied soon though.

@DMB the earlier behavior was actually not consistent with the rest of
the properties in kivy, this change brings it in line with other kivy
properties.

Unfortunately this might break apps that relied on older behavior. I
hope the change is not that big to have caused you great trouble.

Best Regards

contraverse

unread,
Feb 25, 2014, 2:40:47 AM2/25/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi, guys!

Please tell me: is the Android Camera fixed in this version?
Because I'm still not able to use kivu.uix.camera on Android platfrom  :-(

contraverse

unread,
Feb 25, 2014, 2:42:02 AM2/25/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com

AxelB

unread,
Feb 28, 2014, 3:37:53 AM2/28/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi,
starting kivy\examples\widgets\rstexample.py and clicking on a link throws exceptions ( no problem in Kiy 1.7.2):
 
Because I'm new to Kivy I do not know how to report bugs. Hopefully that's o.k.
 
Regards
Axel
 
[DEBUG             ] [Atlas       ] Load <D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\data\..\data\images\defaulttheme.atlas>
[DEBUG             ] [Atlas       ] Need to load 1 images
[DEBUG             ] [Atlas       ] Load <D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\data\..\data\images\defaulttheme-0.png>
[DEBUG             ] [ImagePygame ] Load <D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\data\..\data\images\defaulttheme-0.png>
[DEBUG             ] [ImagePygame ] Load <kivy\examples\widgets\softboy.png>
[INFO              ] [GL          ] NPOT texture support is available
[ERROR             ] [Image       ] Error reading file kivy/data/logo/kivy-icon-256.png
[ERROR             ] [Rst         ] error while loading text

Traceback (most recent call last):
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\rst.py", line 585, in _load_from_text
    document.walkabout(visitor)
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "D:\Kivy-1.8.0-py2.7-win32\Python27\lib\site-packages\docutils\nodes.py", line 166, in walkabout
    visitor.dispatch_visit(self)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\rst.py", line 960, in dispatch_visit
    term = RstTerm(document=self.root)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\anchorlayout.py", line 64, in __init__
    super(AnchorLayout, self).__init__(**kwargs)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\layout.py", line 63, in __init__
    super(Layout, self).__init__(**kwargs)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\widget.py", line 173, in __init__
    Builder.apply(self)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\lang.py", line 1566, in apply
    self._apply_rule(widget, rule, rule)
  File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\lang.py", line 1704, in _apply_rule
    e))
BuilderException: Parser: File "<inline>", line 72:
...
     70:        size_hint: None, None
     71:        size: self.texture_size[0] + dp(10), self.texture_size[1] + dp(10)
>>   72:        font_size: sp(self.document.base_font_size / 2.0)
     73:
     74:<RstBlockQuote>:
...
BuilderException: Parser: File "<inline>", line 72:
...
     70:        size_hint: None, None
     71:        size: self.texture_size[0] + dp(10), self.texture_size[1] + dp(10)
>>   72:        font_size: sp(self.document.base_font_size / 2.0)
     73:
     74:<RstBlockQuote>:
...
AttributeError: 'Label' object has no attribute 'document'
[DEBUG             ] [VideoGstplayer] Load <kivy\examples\widgets\softboy.avi>
[INFO              ] [Base        ] Leaving application in progress...

 Traceback (most recent call last):
   File "kivy\examples\widgets\rstexample.py", line 126, in <module>
     RstApp().run()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\app.py", line 792, in run
     runTouchApp()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\base.py", line 481, in runTouchApp
     EventLoop.window.mainloop()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\core\window\window_pygame.py", line 381, in mainloop
     self._mainloop()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\core\window\window_pygame.py", line 287, in _mainloop
     EventLoop.idle()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\base.py", line 324, in idle
     self.dispatch_input()
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\base.py", line 309, in dispatch_input
     post_dispatch_input(*pop(0))
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\base.py", line 220, in post_dispatch_input
     listener.dispatch('on_motion', etype, me)
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\core\window\__init__.py", line 649, in on_motion
     self.dispatch('on_touch_up', me)
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\core\window\__init__.py", line 675, in on_touch_up
     if w.dispatch('on_touch_up', touch):
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\scrollview.py", line 697, in on_touch_up
     self.simulate_touch_down(touch)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\scrollview.py", line 508, in simulate_touch_down
     ret = super(ScrollView, self).on_touch_down(touch)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\widget.py", line 284, in on_touch_down
     if child.dispatch('on_touch_down', touch):
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\scatter.py", line 479, in on_touch_down
     if super(Scatter, self).on_touch_down(touch):
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\widget.py", line 284, in on_touch_down
     if child.dispatch('on_touch_down', touch):
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\widget.py", line 284, in on_touch_down
     if child.dispatch('on_touch_down', touch):
   File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4409)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\label.py", line 221, in on_touch_down
     self.dispatch('on_ref_press', uid)
   File "_event.pyx", line 312, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:4359)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\rst.py", line 592, in on_ref_press
     self.goto(ref)
   File "D:\Kivy-1.8.0-py2.7-win32\kivy\kivy\uix\rst.py", line 658, in goto
     dx, dy = self.convert_distance_to_scroll(0, ay)
 AttributeError: 'RstDocument' object has no attribute 'convert_distance_to_scroll'

Alexander Taylor

unread,
Feb 28, 2014, 7:07:15 AM2/28/14
to kivy-...@googlegroups.com
This bug has been fixed in kivy's master version, so it will be in the
next stable release.

Thanks for reporting it though!
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Kivy users support" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/kivy-users/PePoXLXDYBk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to

Mathieu Virbel

unread,
Mar 1, 2014, 11:53:12 AM3/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi,

I just read about your widget.center concerns. This exists already from a long time, as git annotate tell me:

fc6f5757        (Mathieu Virbel 2010-11-06 16:10:56 -0400       693)    center = ReferenceListProperty(center_x, center_y)

The thing is, instead of returning a pure tuple, yes it returns an ObservableReferenceList. But the behavior is the same as before you know, nothing changed on this side. On all the previous release, if you change pos/size, center would change as well. If you stored something in center, it would update the pos as well.

So i don't really understand your concerns :)

Mathieu



--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.

Diogo Bastos

unread,
Mar 1, 2014, 1:52:04 PM3/1/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Hi Mathieu,

What I'm talking about isn't sync between pos and center which would obviously be a bug in the "kivy is rendered useless" kind of category. If you look at the excerpt I posted:

On kivy 1.7:

       whatever = widget.center
       widget.center = (123, 456)
       # whatever is unchanged

On kivy 1.8:

      whatever = widget.center
      widget.center = (123, 456)
      # whatever is now (123, 456) potentially breaking all code that was expecting whatever to be unchanged

What is now changing is the value of the "whatever" variable - which is a variable outside of Kivy's internal's - and whose value is now (perceivingly) being changed by behaviour of something that is internal to Kivy, and this happens because "center" is now Observable. 

This was changed in 1.8.0 and, despite being a potential app-breaker, is undocumented as a change. It has nothing to do with sync between pos and center. The change itself is in kivy/properties.pyx so it's possible you didn't realize what I was talking about if you were looking at kivy/uix/widget.py.


--
You received this message because you are subscribed to a topic in the Google Groups "Kivy users support" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kivy-users/PePoXLXDYBk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kivy-users+...@googlegroups.com.

qua-non non

unread,
Mar 1, 2014, 2:49:40 PM3/1/14
to kivy-...@googlegroups.com
I was under the impression that widget.center might have been
changed recently.

However tito is right, you can see in the code here

This part hasn't changed in a while.

Diogo Bastos

unread,
Mar 1, 2014, 3:25:52 PM3/1/14
to kivy-...@googlegroups.com
It's not widget.py, it's properties.pyx!

Kivy 1.7

Inline image 1

Kivy 1.8

Inline image 2

This is both undocumented and a potential app-breaker. There's nothing wrong with the change per se, as long as you document it so that people don't get caught off guard! :)

qua-non non

unread,
Mar 2, 2014, 1:40:04 AM3/2/14
to kivy-...@googlegroups.com
ok, I guess this commit  https://github.com/kivy/kivy/commit/b464278d052bf3a57864d09a7620886e73e61ce6 changed the behavior of the default reference list
allowing each individual element to be set.

This brings ReferenceListProperty in line with other properties used in kivy.
Though this means that this would affect any property set using ReferenceListProperty not just widget.center.

It is mentioned in the changelog

 [#1389] Allow individual elements of ReferenceListProperty to be
    changed

@Diogo Bostos I agree that we should be mentioning that this changes behavior and could break certain apps that rely on the old behavior.
Will edit the change log to highlight the change.

Thanks. 

qua-non

unread,
Mar 2, 2014, 1:51:50 AM3/2/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Just a heads up for every-one the following change:

 [#1389] Allow individual elements of ReferenceListProperty to be
    changed

Changed the return type from a tuple to a ObservableReferenceList.
Due to this change the properties like widget.center that used this will
now behave like most other properties in kivy.

On kivy 1.7:

       whatever = widget.center
       widget.center = (123, 456)
       # whatever is unchanged

On kivy 1.8:

      whatever = widget.center
      widget.center = (123, 456)
      # whatever is now (123, 456)

Thanks to Diogo Bostos for highlighting this.

Cristiano Araujo

unread,
Mar 17, 2014, 10:04:16 AM3/17/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
i´m totally new on kivy. i liked so much. so i can create desktop and mobile apps, right? some days ago i started to develop using java but java generate so much code. my favorite language is python. my doubt is this: in kivy android projects i don´t need to use xml to create the interface of my app? and how can i deploy my apk to install in my device?

  thanks for this amazing project!
  regards!  

yo_...@yahoo.com

unread,
May 11, 2014, 9:43:49 PM5/11/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
Sound volume does not appear fixed to me.  Are you sure you have tested it thoroughly?  On OSX the volume level adjustments magically revert back to full volume and on my Android it doesn't work at all.  I can't tell what version my Kivy Launcher is because it doesn't status the version anywhere I can tell.  Why isn't that info right up font on the title bar in the config menu or something. 

On Friday, January 31, 2014 11:38:42 AM UTC-8, Mathieu Virbel wrote:
Hi everyone,

We are pleased to announce Kivy 1.8.0.


  Audio

  - [#1311, #1269] Fix volume property
  - New GstPlayer backend

  

Smaran

unread,
May 27, 2014, 5:27:45 PM5/27/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com
Hello
When is it expected to have Kivy 1.8 and Python 3 on Linux and Android?
 
When I read the announcement for version 1.8 and Python 3 not realize it was only for MS-Windows for now.
 
 

Em sexta-feira, 31 de janeiro de 2014 17h38min42s UTC-2, Mathieu Virbel escreveu:
Hi everyone,

We are pleased to announce Kivy 1.8.0.

  - [#1311, #1269] Fix volume property
  - New GstPlayer backend

  - [#1389] Allow individual elements of ReferenceListProperty to be
    changed

Alexander Taylor

unread,
May 27, 2014, 5:30:54 PM5/27/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com
It already works fine on linux.

Android support is more complicated, and I'm not sure when we will be able to support it.

Bill Janssen

unread,
May 31, 2014, 12:35:46 PM5/31/14
to kivy...@googlegroups.com, kivy-...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
The new camera support on OS X doesn't seem to work on my machine.

Darwin 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:26:45 PDT 2012; root:xnu-1699.32.7~1/RELEASE_I386 i386


Bill


On Friday, January 31, 2014 11:38:42 AM UTC-8, Mathieu Virbel wrote:

Kadir Çakır

unread,
Jun 2, 2014, 4:09:03 PM6/2/14
to kivy-...@googlegroups.com, kivy...@googlegroups.com
If Python 3 will be released for Android, that would be my best day ever. Because Python 2.7 doesn't support utf-8 characters and it's like pain in the ass for our business kivy app.

Gabriel Pettier

unread,
Jun 2, 2014, 4:37:08 PM6/2/14
to kivy-...@googlegroups.com
Did you try putting

# coding: utf-8

as first or second line of your python file?

It should make it support unicode caracters in the file.

Cheers
> --
> You received this message because you are subscribed to the Google Groups "Kivy users support" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Kadir Çakır

unread,
Jun 2, 2014, 5:47:51 PM6/2/14
to kivy-...@googlegroups.com
It doesn't work. UnicodeError ascii codec can't encode character bla bla... I tried everything (encode, decode, etc). I have no hope. Just waiting for Python 3 support :)

Brice DORA

unread,
Jan 2, 2015, 10:40:51 AM1/2/15
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
hi I have a problem now when I run my script using Kivy. and unfortunately I find that my Kivy interfaces are reversed. So what is this due and how to fix this?

Alexander Taylor

unread,
Jan 2, 2015, 11:38:25 AM1/2/15
to kivy-...@googlegroups.com
What do you mean by 'reversed'?
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Kivy users support" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/kivy-users/PePoXLXDYBk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> kivy-users+...@googlegroups.com
> <mailto:kivy-users+...@googlegroups.com>.
0x6DB9E52F.asc
signature.asc

Brice DORA

unread,
Jan 2, 2015, 12:38:30 PM1/2/15
to kivy-...@googlegroups.com

this is a screenshot of my app look at it and may be you will understand
Capture.PNG

Alexander Taylor

unread,
Jan 2, 2015, 12:40:18 PM1/2/15
to kivy-...@googlegroups.com
Have you somehow set the rotate option in kivy's settings, which you can access by pressing f1 unless you disabled it?

Brice DORA

unread,
Jan 2, 2015, 12:45:54 PM1/2/15
to kivy-...@googlegroups.com
wow it's exact the rotation's value is 180 but i can't do nothing because of cursor don't appear on the window so i can't manipulate and change differents kivy's settings

Brice DORA

unread,
Jan 2, 2015, 12:55:04 PM1/2/15
to kivy-...@googlegroups.com
please is there a other way to change it?

Alexander Taylor

unread,
Jan 2, 2015, 1:26:40 PM1/2/15
to kivy-...@googlegroups.com
You can set it in kivy's config file, but I'm not sure where it's stored on windows.

Mihály Mirk

unread,
Jan 5, 2015, 9:17:23 AM1/5/15
to kivy-...@googlegroups.com
The path to config.ini:

C:\user\your username\.kivy\config.ini


Carlos Choy

unread,
Mar 17, 2015, 6:27:42 PM3/17/15
to kivy-...@googlegroups.com, kivy...@googlegroups.com, pyjni...@googlegroups.com, python-...@googlegroups.com
I am using the Kivy virtual machine version.

How do I safely upgrade to this latest version in my virtual machine?
Reply all
Reply to author
Forward
0 new messages