Как установить bulldozer на windows

Обновлено: 06.07.2024

Приложение Kivy представляет из себя простой файл Python, который содержит код Kivy. Файл в нашем приложении будет называться «main.py». Причина в том, что при создании мобильного приложения должен быть файл с именем «main.py», который является входом приложения. В приложении, которое будет создано, будет три виджета Kivy, которые представляют собой ввод текста (text input), ярлык (label) и кнопку (button). Эти виджеты располагаются вертикально в окне при использовании коробочной схемы расположения инструментов. Они появятся в соответствии с тем порядком, в котором были добавлены в коробочную схему расположения. Другими словами, текстовый ввод будет первым виджетом, ярлык вторым и кнопка в самом низу. Когда кнопка нажата, текст, введенный в текстовый ввод, будет отображаться в ярлыке. Вот код Kivy этого приложения.

Метод сборки — это то, что вызывается после запуска приложения, и, таким образом, оно используется для инициализации окна графического интерфейса Kivy. Три виджета создаются, а затем добавляются в макет окна. Метод bind привязывает метод обратного вызова к кнопке, чтобы выполняться при нажатии. Метод обратного вызова называется «displayMessage», который устанавливает текстом ярлыка текст, который введён в виджет текстового ввода . Приложения запускаются, только если файл main.py выполняется, гарантируя, что переменная «__name__» имеет значение «__main__» внутри оператора if. Делать так — хорошая практика. Для запуска приложения необходимо выполнить два шага. Сначала нужно активировать созданную ранее виртуальную среду Kivy с именем «mykivyinstall». Затем, запустить файл приложения «main.py» после перехода в папку, в которой он существует. Эти шаги показаны на рисунке 3.


Рисунок 3. Активация виртуального окружения.


На этом этапе можно сказать, что приложение Kivy для рабочего стола успешно создано. Теперь мы можем начать упаковку этого проекта как приложения для Android.

Buildozer может быть установлен с помощью этой команды. Эта команда гарантирует, что Buildozer будет установлен и обновлен.

После успешной установки Buildozer, давайте подготовим все необходимые файлы, чтобы успешно создать приложение для Android.

Структура нашего проекта показана на рисунке 5. В папке с именем simpleapp размещен файл main.py, созданный ранее. Красота Kivy заключается в том, что этот же файл Python будет использоваться без изменений в приложении для Android. Но есть и другой файл с именем buildozer.spec, который необходим для создания приложения. Этот файл содержит информацию об Android-приложении, такую как название и версия. Как создать этот файл?


Файл buildozer.spec может быть сгенерирован с использованием инструмента Buildozer. Измените текущий рабочий каталог на каталог, в котором размещён файл приложения main.py, а затем выполните следующую команду:


Рисунок 6. Генерация файла buildozer.spec.

Далее перечислены некоторые из важных свойств приложения Android в файле buildozer.spec:

После подготовки всех файлов, необходимых для создания Android приложения, давайте наконец его создадим.

Buildozer — хороший инструмент для создания приложения для Android, потому что он готовит среду в соответствии со всеми требованиям по созданию успешного приложения. Эти такие требования такие, как python-for-android, Android SDK, NDK и другие. Внутри каталога приложения его можно создать, используя следующую команду:

На рисунке 7 показан ответ при вводе команды. При создании приложения в первый раз, Buildozer должен загрузить все эти зависимости. Это займет некоторое время, пока они загрузятся и установятся. Потерпите.


После выполнения команды файл APK будет найден в следующем каталоге проекта: /simpleapp/.buildozer/android/platform/build/dists/simpleapp/bin. Файл APK можно перенести на устройство Android для его запуска. Также можно подключить устройство Android к машине, создать, развернуть и запустить приложение, используя одну команду, которая выглядит следующим образом:

На рисунке 8 показан запуск приложения для Android.


Рисунок 8. Запуск приложения на Android.

Филипс, Дасти. Создание приложений в Kivy: Мобильный софт вместе с Python. “O’Reilly Media, Inc.”, 2014.


Здравствуйте. Делал по вашим рекомендациям строго по шагам и не заметил что папка виртуального окружения создалась в каталоге /tmp. Есть какая либо возможность переместить ее в домашнюю директорию? Или повторить заново все шаги начиная с создания папки виртуального окружения?
Заранее спасибо за ответ.

Для того, чтобы перенести папку, используйте следующую команду:
mv -f /tmp/folder_name/ /home/user_name/

Но я не уверен, насчет зависимостей, которые вы установили в виртуальное окружение, будут ли они работать.

Спасибо за ответ. Пришлось устанавливать заново. Мучаюсь уже второй день - apk собирается а на устройстве или эмуляторе не хочет запускаться. Пишет загрузка и программа закрываеться. Не знаете что это может быть?

На днях сделаю третью часть "как установить .apk на эмулятор или телефон. Тут еще много всяких нюансов, которые нужно знать. По этому так сразу не ответишь на ваш вопрос. Нужно во первых знать в какой OS вы работаете, а во вторых сколько бит 32 или 64.

Разобралься. Питоновский файл должен обязательно называться main.py.

Здравствуйте,делал всё по шагам пока не споткнулся на установке пакетов libsdl2 зависимости есть говорит. Подскажите пожалуйста, как решить?

Ничего страшного, значит у вас уже была эта библиотека, следуйте дальше по шагам.

К сожалению не установился у меня Kivy, из-за этих зависимостей..

Вкрутил эти два пакета нагло,перезагрузил ПК с запуском Recovery Mode==> dpkg .

в Терминале проверил python=>import kivy всё вывело 1,9 версию

P.S. Совет: Вместо apt-get,Лучше используйте aptitude он круче..

aptitude делает все за вас, а с apt-get нужно самому понимать, то что вы собираетесь сделать

Тут есть момент. Я не очень знаю Ubuntu, спасибо Володя что дал ссылку на оф. установку.
При установке Kivy нужно смотреть вресию Cython там табличка есть,например для версии ivy1..9.1 нужен Cython 0.23
значит нужно писать так
pip install Cython==0.23
Тогда и Kivy нормально становится, но в любом случае табличку посмотреть.

Валерий, спассибо, что заметили. Я тоже сначала так делал:
pip install Cython==0.23
но потом на практике когда использовал с разными версиями Python и Kivy, то возникали ошибки. В итоге я решил делать вот-так, установка и затем обновление sudo pip install --upgrade cython
Вся загвоздка в том, что Cython устанавливается не в виртуальное окружение, а в сому систему, отсюда и ошибки.


В наши дни каждый разработчик может столкнуться с необходимостью работы над мобильным или веб-приложением на Python. В Python нет встроенных инструментов для мобильных устройств, тем не менее существуют пакеты, которые можно использовать для создания мобильных приложений. Это Kivy, PyQt и даже библиотека Toga от Beeware.

Содержание

Библиотеки являются основными элементами мобильного мира Python. Однако, говоря о Kivy, нельзя игнорировать преимущества данного фреймворка при работе с мобильными приложениями. Внешний вид приложения автоматически подстраивается под все платформы, разработчику при этом не нужно компилировать код после каждой поправки. Кроме того, здесь для создания приложений можно использовать чистый синтаксис Python.

В руководстве будут разобраны следующие темы:

  • Работа с виджетами Kivy;
  • Планировка UI и лейауты;
  • Добавление событий;
  • Использование языка KV;
  • Создание приложения-калькулятора;
  • Упаковка приложения для iOS, Android, Windows и macOS.

Разбор данного руководства предполагает, что читатель знаком с объектно-ориентированным программированием. Для введения в курс дела можете просмотреть статью об Объектно-ориентированном программировании (ООП) в Python 3.

Принципы работы фреймворка Kivy Python

Kivy был создан в 2011 году. Данный кросс-платформенный фреймворк Python работает на Windows, Mac, Linux и Raspberry Pi. В дополнение к стандартному вводу через клавиатуру и мышь он поддерживает мультитач. Kivy даже поддерживает ускорение GPU своей графики, что во многом является следствием использования OpenGL ES2. У проекта есть лицензия MIT, поэтому библиотеку можно использовать бесплатно и вкупе с коммерческим программным обеспечением.

Во время разработки приложения через Kivy создается интуитивно понятный интерфейс (Natural user Interface), или NUI. Его главная идея в том, чтобы пользователь мог легко и быстро приспособиться к программному обеспечению без чтения инструкций.

Kivy не задействует нативные элементы управления, или виджеты. Все его виджеты настраиваются. Это значит, что приложения Kivy будут выглядеть одинаково на всех платформах. Тем не менее, это также предполагает, что внешний вид вашего приложения будет отличаться от нативных приложений пользователя. Это может стать как преимуществом, так и недостатком, все зависит от аудитории.

Установка Kivy

У Kivy есть множество зависимостей, поэтому лучше устанавливать его в виртуальную среду Python. Можно использовать встроенную библиотеку Python venv или же пакет virtualenv.



Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник.


Конечно, мог бы! Итак, вы написали свой код на Python и Kivy. Что нужно для того, чтобы это можно было запустить на Android устройствах? Перейдите в репозиторий KivyMD и вы увидите, что в этой инструкции уже давно прописаны шаги, которые позволят вам собрать APK пакет:


Все! Теперь у вас есть виртуальная машина для сборки APK пакетов для приложений Kivy! Что дальше? Давайте, собственно, займемся сборкой тестового приложения. Создайте в домашнем каталоге вашей виртуальной машины директорию TestKivyMD с пустым файлом main.py:



Далее откройте файл main.py и напишите код нашего тестового приложения, которое будет использовать библиотеку KivyMD:


Сохраните, откройте терминал в директории с файлом main.py и установите библиотеку KivyMD:


После установки можно протестировать наш код:


Результатом работы скрипта будет экран с Toolbar и одной кнопкой «Hello World»:



Дальше нам нужно создать файл спецификации buildozer.spec, который должен располагаться в той жу директории, что и файл main.py:



Если вы не закрывали терминал (если терминал был закрыт, откройте его в директории TestKivyMD), введите команду:


Эта команда создаст дефолтный файл спецификации. Откройте его и отредактируйте:


Здесь все понятно поэтому дополнительные комментарии излишне. Почитайте внимательно дефолтную спецификацию, в ней можно указать путь к иконке, пресплеш при загрузке приложения и многое другое. Я оставил лишь то, что нам сейчас нужно для сборки нашего тестового пакета. И, собственно, запускаем процесс сборки командой в терминале:


Можете смело идти на кухню и заваривать кофе, потому что в первый раз процесс загрузки и компиляции библиотек займет очень много времени. Все последующие сборки проходят за 10-20 секунд.

Кофе выпит и самое время заглянуть в терминал:



Вуаля! Наше приложение построено! Самое время закинуть его на смартфон и запустить:


Все работает! И оказывается не все так сложно, как казалось.

Также меня спрашивали:



Ни у Flutter ни у React Native нет преимуществ перед языком разметки Kivy Language, которая позволяет создавать и позиционировать лайоуты и виджеты. Как по мне, то, как строится UI во Flutter — это самое настоящее извращение. Придумать это мог только больной на голову человек. Чтобы не быть голословным, давайте посмотрим на код Flutter и код Kivy одного и того же простейшего приложения… Выглядеть оно будет следующим образом:


Ниже я привожу код из статьи Про Flutter, кратко: Основы:


А вот абсолютно тоже самое, но с использованием Kivy и KivyMD:


По-моему, вывод очевиден и не нуждается в моем комментировании…

Надеюсь, был вам полезен. Оставляю опрос на тему «Удалось ли вам построить приложение для Андроид».

Читайте также: