PyKDE5 Status

I've been steadily chipping away at creating Python bindings for the many libraries which make up KF5. The current list of KF5 libraries which have bindings is:

  • karchive
  • kcoreaddons
  • kguiaddons
  • kitemmodels
  • kitemviews
  • kplotting
  • kwidgetsaddons
  • solid
  • sonnet

This is most of tier 1. The biggest omission at the moment is kconfig. Some small libraries like kcodecs and kwindowsystem don't have bindings because the functionality is either not applicable or already present in Python's standard library. As I mentioned at the start, I'm 'chipping' away at the big pile of KF5 libraries. There are still many left. If you see a library in KF5 which you really want bindings for before the rest of KF5, then you can email me and I'll try to give it high priority.

Also note that only Python 3 is supported. It doesn't make sense to support legacy Python versions like 2, especially when developers need to do a port anyway from PyKDE4 to PyKDE5.

Another important reason is that it costs more time and effort to support more configurations. It is no secret to anyone who has followed PyKDE4 development and support just a little bit, will have noticed that my time for KDE is very limited. The situation isn't likely to improve, in fact in a couple months it should get worse if all goes to plan. :-) I see that some people have stepped in to fill the void and fix some of the build and installation problems they have encountered (hi Luca!). This is great and I encourage people to get involved where possible. The hardest part is getting a working dev environment set up, deep C++ knowledge isn't really needed (I certainly don't have deep C++ knowledge!).

The KDE project page for PyKDE5 and links to the git repository can be found here:

There is currently no separate release or tag, it is all on trunk. It is best to build and install your own version of Python 3 somewhere and then build and install SIP and PyQt5 with using that Python 3 installation.


"Also note that only Python 3 is supported. It doesn't make sense to support legacy Python versions like 2"


By Laszlo Papp at Sun, 08/10/2014 - 09:06

I completely agree w/ Simon! Supporting two different interfaces was damn annoying! Finally we can get rid of Python2 crap from Kate!

By Alex Turbov at Wed, 09/10/2014 - 21:02

Great to see work coming on this! Thanks a lot!

Are the bindings going to be split up similarly to the frameworks, so we can install only bindings to particular frameworks?

By toddrme2178 at Sun, 08/10/2014 - 11:18

I have no plans to split it up on the source level. Packagers are free to build PyKDE5 and split it into as many packages as they want. This is an issue you can discuss with your distro's package people.

By simon edwards at Sun, 08/10/2014 - 11:52

Great news Simon! I'm very happy to hear that PyKDE continues. I also agree with the decision to drop Python 2 support (I've been in "write Python 3 first, enable backwards compatibility with Python 2 when needed" mode for some time now with no regrets).

By eike hein at Sun, 08/10/2014 - 17:09


imho you should not call Python 2 "legacy"! It is completly ok to not provide Bindings for Python 2, but please do not call it incorrectly "legacy" - it is just not true :-)

By Hyperion at Sun, 08/10/2014 - 17:09

I am not sure whether you are kidding. If you aren't, I have some bad news for you: Python 2 is officially considered "legacy" by upstream. It will receive no new features, only bug fixes, and upstream recommends everyone migrate to python 3.

By toddrme2178 at Mon, 08/11/2014 - 08:44

I don’t want to come off as an ass, but what do you think the definition of “legacy” is regarding software? I would say that “Past version that isn’t updated with new features anymore” is pretty fitting.

besides: Python2orPython3 says “Short version: Python 2.x is legacy, Python 3.x is the present and future of the language”, and nobody seems to want this changed.

By flying sheep at Thu, 09/11/2014 - 09:42


Any updates on the overall effort? I'm especially interested in ktexteditor for Kate's Python integration...


By Shaheed at Sun, 01/18/2015 - 13:24