- VS Web School
- 13 ноября 2015 г.
- Android. Python. Как установить Kivy и Buildozer на Ubuntu 14.04 (Часть 1)
- 12 комментариев :
- Нужно установить зависимости для bulldozer windows
- About
- Нужно установить зависимости для bulldozer windows
- Экспериментальная функция:
- Зависимости
- How do I install Buildozer on Ubuntu to create an Android APK of a Kivy App?
- 4 Answers 4
- The procedure described below was working perfectly for me:
VS Web School
13 ноября 2015 г.
Android. Python. Как установить Kivy и Buildozer на Ubuntu 14.04 (Часть 1)
Затем установим Buildozer, который необходим для создания .apk файла
12 комментариев :
Здравствуйте. Делал по вашим рекомендациям строго по шагам и не заметил что папка виртуального окружения создалась в каталоге /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 устанавливается не в виртуальное окружение, а в сому систему, отсюда и ошибки.
Нужно установить зависимости для bulldozer windows
Buildozer is a tool for creating application packages easily.
The goal is to have one «buildozer.spec» file in your app directory, describing your application requirements and settings such as title, icon, included modules etc. Buildozer will use that spec to create a package for Android, iOS, Windows, OSX and/or Linux.
Buildozer currently supports packaging for Android via the python-for-android project, and for iOS via the kivy-ios project. iOS and OSX are still under work.
For Android, buildozer will automatically download and prepare the build dependencies. For more information, see Android-SDK-NDK-Information. Note that only Python 3 is supported.
Note that this tool has nothing to do with the eponymous online build service buildozer.io.
Installing Buildozer with target Python 3 (default):
Check buildozer is in your path
Go into your application directory and run:
Buildozer Docker image
A Dockerfile is available to use buildozer through a Docker environment.
Buildozer GitHub action
Use ArtemSBulgakov/buildozer-action@v1 to build your packages automatically on push or pull request. See full workflow example.
Examples of Buildozer commands
See buildozer/default.spec for an up-to-date spec file.
You can override the value of any buildozer.spec config token by setting an appropriate environment variable. These are all of the form $SECTION_TOKEN , where SECTION is the config file section and TOKEN is the config token to override. Dots are replaced by underscores.
For example, here are some config tokens from the [app] section of the config, along with the environment variables that would override them.
- title -> $APP_TITLE
- package.name -> $APP_PACKAGE_NAME
- p4a.source_dir -> $APP_P4A_SOURCE_DIR
If you need assistance, you can ask for help on our mailing list:
For debugging on Android, don’t hesitate to use ADB to get logs of your application.
We love pull requests and discussing novel ideas. Check out our contribution guide and feel free to improve buildozer.
The following mailing list and IRC channel are used exclusively for discussions about developing the Kivy framework and its sister projects:
We also have a Discord channel:
Buildozer is released under the terms of the MIT License. Please refer to the LICENSE file.
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
About
Generic Python packager for Android and iOS
Нужно установить зависимости для bulldozer windows
Фух! Только что выбрался из под траков этого чудовища. А кое-кому повезло меньше. Как и было обещано в предыдущей статье, сегодня мы расскажем, как собираются apk пакеты для программ, написанных с использованием фреймворка Kivy при помощи утилиты Buildozer.
Экспериментальная функция:
Ниже вы видите текст статьи по ссылке. По нему можно быстро понять ссылка достойна прочтения или нет
Просим обратить внимание, что текст по ссылке и здесь может не совпадать.
Фух! Только что выбрался из под траков этого чудовища. А кое-кому повезло меньше. Как и было обещано в предыдущей статье, сегодня мы расскажем, как собираются apk пакеты для программ, написанных с использованием фреймворка Kivy при помощи утилиты Buildozer.
Что для этого понадобится? Помимо уже известных инструментов — кофе-сигареты, полкило нервов — нам потребуются ключи от новенького Бульдозера, который стоит в ангаре на github и сопутствующие зависимости, без которых он, к сожалению, не заведется, а если заведется, то никого задавить не удастся и apk пакет для Android не собрать.
Кстати, пользователи Microsoft, на своих Windows машинах за Бульдозером с нами не едут, потому что для сборки apk пакета требуется Linux система, либо ее образ на виртуалке. Ну, что ж. А мы отправляемся на github, отбуксируем Бульдозер и распакуем архив в какую-нибудь директорию. Блин. Да это просто монстр!
Спокойно. Не заводим. За рычаги не хватаемся. Во-первых, нам нужно скачать пакет pip — инструмент для установки и управления пакетами Python.
Заходим в ангар, в смысле в папку с Бульдозером.
… и выполняем команду —
Об успешной установке мы будем извещены сообщением Successfully installed buildozer. Бульдозер работает как на Python 2.7 так и на Python >= 3.3. Я использую Python 2.7. Просто потому, что я пока не пытался собирать apk пакеты для программ, написанных с использованием Python 3, хотя по заявлениям разработчиков Kivy, третий Python полностью поддерживается. Ну, и теперь, собственно, давайте скачаем python-for-android. У меня работает именно эта ветка, поэтому других я не предлагаю. Распакуйте python-for-android.zip и пока забудем о нем.
Зависимости
Их довольно много и от правильной их установки будет зависеть, сможете ли вы собрать заветную apk-шечку или придется выпить валидолу и начать все сначала. Считается, что все вышеперечисленные пакеты у вас отсутствуют и предполагается, что фреймворк Kivy установлен и успешно вами используется.
Для сборки пакета под Android нам понадобится Android SDK. Некоторые его двоичные файлы все еще находятся в 32 битных библиотеках, так что нужно сделать их доступными:
После этого можем установить следующие пакеты:
Ну, и теперь, наконец, мы готовы сесть в удобное кресло Бульдозера и схватится за рычаги управления. Заходим в папку проекта и выполняем в терминале команду —
… которая создаст в проекте файл спецификации buildozer.spec, где мы будем указывать Бульдозеру с какими параметрами собирать наше приложение.
Откроем данный файл и посмотрим его содержимое:
Теперь рассмотрим подробнее.
Это имя приложение, которое будет отображаться на Android девайсе и которое будет носить установочный apk пакет.
Уникальный домен приложения.
Директория, в которой находится точка входа в приложение — файл main.py. По умолчанию это корневая директория проекта.
Расширение файлов, которые будут включены в сборку apk пакета из вашего проекта. Структура дерева директорий, откуда указанные файлы будут браться, сохраняется.
Версия программы и в каком файле ее (версию) искать. Данный метод говорит, что в файле main.py корневой директории проекта должна быть переменная со значением версии вашего приложения.
Сторонние библиотеки, которые будут включены в сборку. Через запятую вы можете указать пакеты библиотек, с которыми работает ваше приложение, например: kivy, opencv, pil, sqlite3.
Полный список доступных библиотек вы можете посмотреть в редакторе спецификации в инструменте для построения UI — Kivy Designer. Очень рекомендую!
Изображение, которое будет показано на экране девайса пока запускается ваше приложение, где %(source.dir)s — путь к корневой директории проекта.
Иконка приложения, которая будет отображаться на девайсе.
Ориентация вашего приложения на девайсе. Помимо ‘portrait’, может принимать значение ‘landscape’. ‘fullscreen’ указывает разворачивать Activity на весь экран. Также принимает значение ‘0’.
Используемая приложением версия Android API (должна быть в Android SDK). Здесь могут возникнуть проблемы, если, например, вы указали версию Android API 10, которая отсутствует в Android NDK.
Минимальная версия Android API, поддерживаемая приложением.
Версия Android SDK.
Версия Android NDK.
Указывает создавать папку с файлами проекта на девайсе на SD карте. Рекомендую. Потому что в данном случае вы можете заменить байткомпилированое представление *.pyo файлов проекта на исходные тексты, и если будет необходимость внести в проект небольшое изменение, вы можете сделать это прямо на девайсе, отредактировав исходники или перезалив их с компьютера.
Здесь все понятно. Можете сделать следующим образом:
В таком случае Бульдозер скачает и Android SDK с указанными в спецификации версиями ANDROID API, и Android NDK, и python-for-android, будет скачан Apache-ant, если Бульдозер его не найдет. Также будут скачаны следующие библиотеки и исходники самого Python и модулей:
Да. Все это несколько хлопотно, но делается это один раз. Потом, для сборки проекта, достаточно просто отредактировать файл спецификации buildozer.spec и закинуть его в проект, который мы хотим собрать. Остальные параметры спецификации я не рассматриваю, поскольку пока я их еще сам не использоавл. И, да, параметры для сборки под iOS тоже остаются за траками, потому что я не имею девайса с данной платформой.
Собственно, эй, вы там — закройте двери Бульдозера с той стороны и прочь со взлетной полосы — мы заходим в папку проекта и выполняем в терминале команду начала компиляции:
Пройдет о-о-очень много времени (пригодились сигареты и кофе), прежде чем вы увидите заветное сообщение:
Обратите внимание, что apk-шечка получается дебажная. На Хабре есть статья, в которой описывается процесс создания подписанного пакета. К тому же размер сборки довольно внушительный — 7.6 Мб. Это потому, что Бульдозер включает в сборку весь Python целиком со всеми тестами и не нужными библиотеками. Также сам Kivy включается со всеми API даже если ваше приложение их не использует.
В следующей статье я расскажу, за какие рычаги дергать Бульдозер, чтобы увидеть собранный проект, но уже гораздо меньшего размера.
How do I install Buildozer on Ubuntu to create an Android APK of a Kivy App?
It’s not easy to install buildozer on Ubuntu 13.10. I reinstalled Ubuntu several times and now I’d like to share how I installed buildozer.
I got the following errors from buildozer:
- ./distribute.sh not found —> no fix found (that’s why I reinstalled Ubuntu twice, probably an issue with python installation but I’m not sure)
- _add_java_src() fails —> adding the correct Java JDK path fixed it
4 Answers 4
The procedure described below was working perfectly for me:
I’ve installed it in a fresh installation of Ubuntu 13.10 (32bit) inside a virtual machine (VMware player) in Windows 7 (64bit) host system.
I decided to use 32 bit because the VM uses not that much RAM and a 64bit system is not needed. But 64bit Ubuntu will probably also work (not tested). I uploaded the zip archive of the VMWare files to google drive (password in ubuntu for root user alexander is UbuntuBuildozer)
$ sudo add-apt-repository ppa:kivy-team/kivy
$ sudo apt-get update
$ sudo apt-get install python-kivy
install pip, if you haven’t got it:
$ sudo apt-get install python-pip python-dev build-essential
prerequisites for buildozer: zlib, Git, Cython and JDK is required
$ sudo apt-get install zlib1g-dev git-core cython openjdk-7-jdk
initialize buildozer and start with debug (just to install Andriod SDK, NDK & ANT — no main.py needed yet, this takes several minutes):
$ buildozer android debug
If buildozer fails at _add_java_src(): Add JDK path in /home/yourusername/.bashrc — add these lines at the end (important use 1.x JDK and not java-7 path):
Now go to your apps main.py and do the following commands:
(edit buildozer.spec and change your app name and check the versioning on line 28/29 or line 32 —> depends on your main.py code
see SO answer to Buildozer compiles simple android kivy application, but fails while packaging)
$ buildozer android debug deploy run