buildozer не работает!
Помогите пожалуйста. Уже не знаю чего этому куску гуаны не хватает! перерыл все что только можно. Моя ОС OpenSuse Thumbleweed. Python 3.8 Buildozer 1.2.0.dev0. Устанавливал по инструкциям на оф сайте. Если нужна какая-то еще инфа - спрашивайте.
[INFO]: Postbuilding android for armeabi-v7a
[INFO]: Postbuilding kivy for armeabi-v7a
[INFO]: # Installing pure Python modules
[INFO]: *** PYTHON PACKAGE / PROJECT INSTALL STAGE ***
[INFO]: The requirements (certifi) don't have recipes, attempting to install them with pip
[INFO]: If this fails, it may mean that the module has compiled components and needs a recipe.
[INFO]: -> directory context /home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build
[DEBUG]: -> running python3 -m venv venv
[DEBUG]: Error: Command '['/home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Exception in thread background thread for pid 13943:
Traceback (most recent call last):
File "/usr/lib64/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 1683, in wrap
fn(*rgs, **kwargs)
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 2662, in background_thread
handle_exit_code(exit_code)
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 2349, in fn
return self.command.handle_command_exit_code(exit_code)
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 905, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:
RAN: /home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 -m venv venv
STDOUT:
Error: Command '['/home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
STDERR:
Traceback (most recent call last):
File "/usr/lib64/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib64/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1276, in <module>
main()
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
ToolchainCL()
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 725, in __init__
getattr(self, command)(args)
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 153, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 212, in build_dist_from_args
build_recipes(build_order, python_modules, ctx,
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 603, in build_recipes
run_pymodules_install(
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 769, in run_pymodules_install
shprint(host_python, '-m', 'venv', 'venv')
File "/home/vadiki/TestKivyMD/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 167, in shprint
for line in output:
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 953, in next
self.wait()
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 879, in wait
self.handle_command_exit_code(exit_code)
File "/home/vadiki/.local/lib/python3.8/site-packages/sh.py", line 905, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:
RAN: /home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 -m venv venv
STDOUT:
Error: Command '['/home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
STDERR:
# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/vadiki/TestKivyMD/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug
# ENVIRONMENT:
# SHELL = '/bin/bash'
# SESSION_MANAGER = 'local/localhost.localdomain:@/tmp/.ICE-unix/1995,unix/localhost.localdomain:/tmp/.ICE-unix/1995'
# WINDOWID = '8388615'
# COLORTERM = 'truecolor'
# SDK_HOME = '/usr/lib64/jvm/java'
# XDG_CONFIG_DIRS = '/home/vadiki/.config/kdedefaults:/etc/xdg:/usr/etc/xdg'
# LESS = '-M -I -R'
# XDG_SESSION_PATH = '/org/freedesktop/DisplayManager/Session0'
# JDK_HOME = '/usr/lib64/jvm/java'
# GTK_IM_MODULE = 'cedilla'
# MACHTYPE = 'x86_64-suse-linux'
# G_BROKEN_FILENAMES = '1'
# HOSTNAME = 'localhost.localdomain'
# HISTSIZE = '1000'
# LANGUAGE = 'ru:en_US'
# FROM_HEADER = ''
# MINICOM = '-c on'
# JAVA_ROOT = '/usr/lib64/jvm/java'
# JAVA_HOME = '/usr/lib64/jvm/java'
# AUDIODRIVER = 'pulseaudio'
# JRE_HOME = '/usr/lib64/jvm/java'
# CPU = 'x86_64'
# SHELL_SESSION_ID = 'c7287e44c584434abb4b46fb0d60a366'
# JAVA_BINDIR = '/usr/lib64/jvm/java/bin'
# XMODIFIERS = '@im=local'
# DESKTOP_SESSION = '/usr/share/xsessions/default'
# ANDROIDAPI = '27'
# GTK_RC_FILES = '/etc/gtk/gtkrc:/home/vadiki/.gtkrc:/home/vadiki/.config/gtkrc'
# XCURSOR_SIZE = '24'
# GPG_TTY = '/dev/pts/1'
# GTK_MODULES = 'canberra-gtk-module'
# XDG_SEAT = 'seat0'
# PWD = '/home/vadiki/TestKivyMD'
# QEMU_AUDIO_DRV = 'pa'
# XDG_SESSION_DESKTOP = 'KDE'
# LOGNAME = 'vadiki'
# XDG_SESSION_TYPE = 'x11'
# MANPATH = '/usr/local/man:/usr/share/man'
# SYSTEMD_EXEC_PID = '1845'
# ANDROIDNDK = '/home/vadiki/.buildozer/android/platform/android-ndk-r19c'
# XAUTHORITY = '/run/user/1000/xauth_NvzWtx'
# LS_OPTIONS = '-N --color=tty -T 0'
# XKEYSYMDB = '/usr/X11R6/lib/X11/XKeysymDB'
# GTK2_RC_FILES = '/etc/gtk-2.0/gtkrc:/home/vadiki/.gtkrc-2.0:/home/vadiki/.config/gtkrc-2.0'
# XNLSPATH = '/usr/share/X11/nls'
# HOME = '/home/vadiki'
# SSH_ASKPASS = '/usr/libexec/ssh/ssh-askpass'
# LANG = 'ru_UA.UTF-8'
# LS_COLORS = 'no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.xz=00;31:*.avi=01;35:*.bmp=01;35:*.dl=01;35:*.fli=01;35:*.gif=01;35:*.gl=01;35:*.jpg=01;35:*.jpeg=01;35:*.mkv=01;35:*.mng=01;35:*.mov=01;35:*.mp4=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.svg=01;35:*.tga=01;35:*.tif=01;35:*.webm=01;35:*.webp=01;35:*.wmv=01;35:*.xbm=01;35:*.xcf=01;35:*.xpm=01;35:*.aiff=00;32:*.ape=00;32:*.au=00;32:*.flac=00;32:*.m4a=00;32:*.mid=00;32:*.mp3=00;32:*.mpc=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:*.wma=00;32:*.wv=00;32:'
# XDG_CURRENT_DESKTOP = 'KDE'
# KONSOLE_DBUS_SERVICE = ':1.373'
# PYTHONSTARTUP = '/etc/pythonstart'
# KONSOLE_DBUS_SESSION = '/Sessions/1'
# PROFILEHOME = '/home/vadiki/TestKivyMD'
# OSTYPE = 'linux'
# XDG_SEAT_PATH = '/org/freedesktop/DisplayManager/Seat0'
# QT_IM_SWITCHER = 'imsw-multi'
# LESS_ADVANCED_PREPROCESSOR = 'no'
# KONSOLE_VERSION = '210802'
# XSESSION_IS_UP = 'yes'
# KDE_SESSION_UID = '1000'
# LESSCLOSE = 'lessclose.sh %s %s'
# XDG_SESSION_CLASS = 'user'
# TERM = 'xterm-256color'
# G_FILENAME_ENCODING = '@locale,UTF-8,KOI8-R,CP1251'
# HOST = 'localhost.localdomain'
# XAUTHLOCALHOSTNAME = 'localhost.localdomain'
# LESSOPEN = 'lessopen.sh %s'
# USER = 'vadiki'
# COLORFGBG = '15;0'
# ANDROIDNDKVER = 'r23'
# KDE_SESSION_VERSION = '5'
# MORE = '-sl'
# CSHEDIT = 'emacs'
# DISPLAY = ':0'
# SHLVL = '1'
# WINDOWMANAGER = '/usr/bin/startplasma-x11'
# PAGER = 'less'
# QT_IM_MODULE = 'xim'
# CVS_RSH = 'ssh'
# XDG_VTNR = '7'
# XDG_SESSION_ID = '1'
# NDKAPI = '21'
# XDG_RUNTIME_DIR = '/run/user/1000'
# DEBUGINFOD_URLS = 'https://debuginfod.opensuse.org/'
# ANDROIDSDK = '/home/vadiki/.buildozer/android/platform/android-sdk'
# QT_AUTO_SCREEN_SCALE_FACTOR = '0'
# MANPATHISSET = 'yes'
# XCURSOR_THEME = 'breeze_cursors'
# XDG_DATA_DIRS = '/usr/share'
# KDE_FULL_SESSION = 'true'
# CONFIG_SITE = '/usr/share/site/x86_64-unknown-linux-gnu'
# PATH = '/home/vadiki/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/vadiki/bin:/usr/local/bin:/usr/bin:/bin:/opt/gradle/gradle-7.2/bin:/home/vadiki/.local/bin/:/opt/gradle/gradle-7.2/bin:/home/vadiki/.local/bin/'
# DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
# PROFILEREAD = 'true'
# KDE_APPLICATIONS_AS_SCOPE = '1'
# MAIL = '/var/spool/mail/vadiki'
# HOSTTYPE = 'x86_64'
# LESSKEY = '/usr/etc/lesskey.bin'
# KONSOLE_DBUS_WINDOW = '/Windows/1'
# _ = '/usr/local/bin/buildozer'
# PACKAGES_PATH = '/home/vadiki/.buildozer/android/packages'
# ANDROIDMINAPI = '21'
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
vadiki@localhost:~/TestKivyMD>
Ответы (1 шт):
Проблему решил путем очень долгих проб и ошибок. Предлагаю свое решение. Надеюсь кому-то поможет. Инструкция для OpenSuse проверено на версии thumbleweed
Установка Kivy: https://kivy.org/doc/stable/gettingstarted/installation.html
python3 -m pip install kivy[base] kivy_examples
Установить git:
sudo zypper install git
Установка Buildozer: 3.1
https://pypi.org/project/buildozer/
pip3 install --user buildozer
или
git clone https://github.com/kivy/buildozer
cd buildozer
python3 setup.py build
pip install -e .
3.2 ВАЖНО!!! Проверить пути для Buildozer и если их нет, то добавить в конце файла .bashrc , который находится в домашней папке пользователя, строку:
export PATH=~/.local/bin/:$PATH
дальше в терминале выполнить:
. ~/.bashrc
`which buildozer`
Должно написать:
Ensure build layout
No buildozer.spec found in the current directory. Abandon. Проверка версии в терминале:
buildozer --version
Установка cython можно установить через yast2
Установить python-for-android и зависимости: 5.1
pip install python-for-android
5.2 зависимости(все через yast2 или терминал):
ant
autoconf
automake
ccache
make
cmake
cython (уже утановлен ранее)
gcc
g++ (в OpenSuse это пакет gcc-c++)
git (уже утановлен ранее)
libncurses (включая версию 32 bit)
libtoolize (в OpenSuse это пакет libtool)
libssl-dev (в OpenSuse это пакет libssl-devel)
openjdk-8 (я сразу не устанавливал. заработало без него, потому что была установлена последняя версия на момент решения проблемы.)
patch
python3 (я так понимаю, что он уже установлен)
unzip
virtualenv (в OpenSuse это пакет python38-virtualenv. вместо 38 выбрать версию установленного питона: для версии 3.9 это будет 39)
zlib (включая версию для 32 bit. качал с сайта https://software.opensuse.org/download/package?package=zlib&project=openSUSE%3AFactory
потому что в списке репозиториев библиотеки с конкретно таким названием не нашел. Заработало только после установки именно этого файла.)
zip
Дальше при попытке компиляции могут вылезти следующие ошибки. 6.1 При выполнении buildozer android debug может проскочить: [WARNING]: Consider installing lld if linker errors occur. Решается установкой lld:
sudo zypper install lld
6.2 Следующая ошибка ModuleNotFoundError: No module named '_ctypes' В Debian libffi-dev В OpenSuse libffi-devel
6.3 Были еще ошибки, но я не запомнил. Они решились путем установки пакетов. Вам может не понадобятся - не знаю.
libopenssl-1_1-devel, libopenssl-devel
java-1_8_0-openjdk, java-1_8_0-openjdk-devel, java-1_8_0-openjdk-headless, lksctp-tools
После всего в папке с программой из терминала надо выполнить:
buildozer android clean (если до этого пытались скомпилировать приложение)
buildozer init
buildozer android debug deploy run
запускать без deploy run если не нужно устанавливать приложение на андроид устройство по дата кабелю и запускать Я выполнял просто
buildozer android debug
а затем скидывал и устанавливал.
Первый раз приложение установилось без проблем, а второй раз (устанавливал сразу поверх пред идущего) написало, что не установлено. Решается удалением установленного с телефона и повторной установкой.
Надеюсь кому-то поможет.