Last Updated: December 01, 2017
· hanleybrand

Develop Kivy apps on Mac OS X with Pycharm

Note: Recent versions of (either/both) Pycharm & Kivy (Pycharm 3.0 & Kivy 1.8.0 at least) have changed so that /usr/local/bin/kivy, which is (now?) a shell script that executes your default python, can not be used as a python interpreter within Pycharm

If you're a Mac-based Pycharm python developer, it may see like you can't use it to develop using the Kivy framework, due to there being no official support -- but setting up Pycharm as a Kivy IDE is very easy, once you realize that

/usr/local/bin/kivy ~= /usr/bin/python

Ok, let's do this!

After installing on your mac:

1. Preferences > Project Interpreter > Python Interpreters

Create a virtualenv. I couldn't figure out how to make it directly, so I made on from 2.7.1 and then edited it. I tried navigating to /usr/local/bin/kivy when I needed to choose the interpreter, but it didn't work.

Edit Python Interpreter

Name: Kivy

Interpreter Path: /usr/local/bin/kivy

It doesn't really matter what you name it. It just matters that you know which virtualenv is where.

Kivy is already its own virtualenv/custom python distribution (type the kivy cmd in a terminal, it's a python shell), so pycharm needs to look at /usr/local/bin/kivy instead of /Library/Frameworks/Python.framework/Versions/Current/bin/python (or whatever) for code inspections, libraries, eggs, etc.

Note that you must have run the make-symlinks script that came with the installer for this to work. If you didn't/can't run make-symlinks, try changing the path to kivy to /Applications/

2. Make sure Kivy is your project interpreter

After you create the kivy interpreter, set it as your kivy project interpreter in Preferences > Project Interpreter.

Apply and Ok, and confirm that the skeletons generate (or at least mostly, I had some errors) and that your project looks a bit like this:

image of pycharm window showing /usr/local/bin/kivy as the python interpreter

Note that my python system library is horribly polluted, so if yours is clean it will look different.

3. Add .kv support

You can save the below XML file to this directory: ~/Library/Preferences/PyCharm20/filetypes/

<?xml version="1.0" encoding="UTF-8"?>
<filetype binary="false" default_extension="" description="Kivy " name="Kivy Files">
      <option name="LINE_COMMENT" value="#" />
      <option name="COMMENT_START" value="" />
      <option name="COMMENT_END" value="" />
      <option name="HEX_PREFIX" value="" />
      <option name="NUM_POSTFIXES" value="" />
      <option name="HAS_BRACES" value="true" />
      <option name="HAS_BRACKETS" value="true" />
      <option name="HAS_PARENS" value="true" />
      <option name="HAS_STRING_ESCAPES" value="true" />
    <keywords keywords="@;Canvas;Label;Rectangle;app;canvas;root;self" ignore_case="false" />
    <keywords2 keywords="center_x;center_y;font_size;id;pos;size;source;text;top" />
    <keywords3 keywords="on_press" />
    <keywords4 keywords="*args;ctx" />
    <mapping ext="kv" />

I made it pretty quickly, it's missing a lot but at least it will color a lot of the main words. Feel free to improve it and re-share.

4. Add a Run Config

Make a run config like normal, just make sure the Kivy interpter is selected so that pycharm will use /usr/local/bin/kivy instead of your standard python (/usr/bin/python or whatever)

6 Responses
Add your response

Thank you very much!

over 1 year ago ·

it works. thank you!

over 1 year ago ·

Thanks! This was great! Seems like the only place on the web that has this kind of info. So well done.

A little hard to follow in places but eventually got there!

Found the following for a more complete kv syntax highlighting file @:

over 1 year ago ·

Wow how did you make it? Sorry I can't even create a kivy interpreter :(

over 1 year ago ·

Thanks, but what should the filename be for the kv syntax support?

over 1 year ago ·

For later versions, just set up environment variables instead of playing with the default interpreter. See's#setting-up-kivy-with-pycharm-4-on-osx for a write-up.

over 1 year ago ·