Проект на Kivy. Часть 1. Настройка окружения
Опубликовано 16 May 2016 в Python
Kivy - интересный проект, который позволяет делать кроссплатформенные GUI приложения, включая мобильные. По слухам. Я решил выяснить можно ли использовать его для создания маленьких приложений на питоне. В этой серии статей я попробую поисследовать Kivy на примере клона "конструктора слов" - одного из упражнений для LingvoLeo.
Эта серия - не учебник, а исследовательский лог моих попыток. В результате я планирую получить собранные приложения для трех платформ минимум: Windows, Mac, Android. Будет здорово, если я соберу еще и iOS версию. В качестве основной платформы для разработки я использую Mac. Так что, все инструкции по установке и настройке окружения будут для этой операционной системы.
Установка
Под мак есть два способа поставить Kivy: скачать бандл или установить зависимости из homebrew, а kivy поставить с помощью pip.
Первый способ (быстрый):
Скачать с http://kivy.org/#download Kivy2.7z (использует системный питон 2.7) или Kivy3.7z (включает в себя Python 3.5)
Распаковываем архив
Копируем в приложения
sudo mv Kivy3.app /Applications/Kivy.app
Создаем симлинк
ln -s /Applications/Kivy.app/Contents/Resources/script /usr/local/bin/kivy
Минус этого способа установки в том, что создается только одно виртуальное окружение на все Kivy проекты. Для маленьких проектов такой способ подойдет, для больших - сомневаюсь. Так что лучше сразу ставить фремворк в свое окружение.
Второй способ (правильный):
Подразумеваю, что вы пользуетесь pyenv и pyenv-virtualenv.
Первым делом ставим зависимости.
brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
Ставим свежий питончик.
pyenv install 3.5.1
Иногда установка падает:
zipimport.ZipImportError: can't decompress data; zlib not available
В этом случае поможет:
xcode-select --install
Как только свежий питон стоит, создаем виртуальное окружение для нашего проекта.
pyenv virtualenv 3.5.1 WordConstructor
Активируем созданное окружение
pyenv activate WordConstructor
Ставим Cython
pip install -I Cython==0.23
Ставим Kivy
USE_OSX_FRAMEWORKS=0 pip install kivy
Проверим, что все работает. Создадим файлик main.py в папке с проектом с таким содержимым:
from kivy.app import App
from kivy.uix.widget import Widget
class WordConstructorGame(Widget):
pass
class WordConstructorApp(App):
def build(self):
return WordConstructorGame()
if __name__ == '__main__':
WordConstructorApp().run()
Запустим
python main.py
Если открылось окно с заголовком WordConstructor, все установилось и работает как надо.
PyCharm
Теперь настроим проект в пайчарме.
В Preferences выбираем Project interpreter соответствующий нашему виртуальному окружению.
Для описания интерфейсов в Kivy используется свой язык Kv Design Language. Неплохо бы добавить для него подсветку синтаксиса и автокомплит.
- Для этого качаем https://github.com/Zen-CODE/kivybits/blob/master/IDE/PyCharm_kv_completion.jar?raw=true
- В PyCharm в меню File -> Import Settings импортируем этот файл.
- Удостоверившись, что стоит галочка File types, нажимаем OK.
- Перезагружаем PyCharm и наслаждаемся результатом.
С настройкой все. В следующей статье обсудим более практические вопросы.
Возник вопрос? Мне всегда можно написать в Twitter: avkorablev