kivy / kivy/python-for-android

ImportError: cannot import name 'BuildDependencyInstallError' while compiling due to inconsistent p4a pip (Kivy-Buildozer)

Open
#3,364 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
8.9k
Forks
2k
Avg merge
12h 20m
Merged PRs (30d)
9

Description

Running script in Google Colab to make .apk from Kivy Android code with following commands:

`!pip3 install --user --upgrade buildozer`
`!sudo apt update`
`!sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev`
`!pip3 install --user --upgrade Cython==0.29.33 virtualenv`
`!/root/.local/bin/buildozer init`
`!/root/.local/bin/buildozer android debug`

if buildozer.spec I changed only one line:
`requirements = python3,kivy,pillow`

Every time Colab gives me the following traceback, the errors came from python-for-android:

[INFO]: <- directory context /content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build
[INFO]: <- directory context /content/.buildozer/android/platform/python-for-android
[INFO]: *** PYTHON PACKAGE / PROJECT INSTALL STAGE FOR ARCH: arm64-v8a ***
[DEBUG]: -> running pip3 install certifi chardet filetype idna requests six urllib3 --dry-run --break-system-packages --ignore-installed --disable-pip-version-check --only-binary=:all: --report /tmp/tmpyzf2cyck -q --platform=android_24_arm64_v8a --platform=android_24_aarch64 --python-version 3.14.2
[INFO]: Extra resolved pure python dependencies :
[INFO]:
[INFO]: charset-normalizer : 3.4.9
[INFO]:
[INFO]: The requirements (certifi, chardet, filetype, idna, requests, six, urllib3, https://files.pythonhosted.org/packages/98/2b/f97f1c193fb855c345d678f5077d6926034db0722df74c8f057020e05a25/charset_normalizer-3.4.9-py3-none-any.whl) 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 /content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build
[DEBUG]: -> running python -m venv venv
[INFO]: Upgrade pip to latest version
[DEBUG]: -> running bash -c source venv/bin/activate && pip install -U pip
[DEBUG]: Traceback (most recent call last):
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/pip", line 3, in
[DEBUG]: from pip._internal.cli.main import main
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main.py", line 11, in
[DEBUG]: from pip._internal.cli.autocompletion import autocomplete
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/autocompletion.py", line 12, in
[DEBUG]: from pip._internal.cli.main_parser import create_main_parser
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main_parser.py", line 9, in
[DEBUG]: from pip._internal.build_env import get_runnable_pip
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/__init__.py", line 8, in
[DEBUG]: from pip._internal.build_env.installer import (
[DEBUG]: ...<2 lines>...
[DEBUG]: )
[DEBUG]: File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/installer.py", line 14, in
[DEBUG]: from pip._internal.exceptions import (
[DEBUG]: ...<4 lines>...
[DEBUG]: )
[DEBUG]: ImportError: cannot import name 'BuildDependencyInstallError' from 'pip._internal.exceptions' (/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/exceptions.py)
Exception in thread background thread for pid 125306:
Traceback (most recent call last):
File "/usr/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/usr/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 1709, in wrap
fn(*rgs, **kwargs)
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 2720, in background_thread
handle_exit_code(exit_code)
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 2411, in fn
return self.command.handle_command_exit_code(exit_code)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 820, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:

RAN: /usr/bin/bash -c 'source venv/bin/activate && pip install -U pip'

STDOUT:
Traceback (most recent call last):
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/pip", line 3, in
from pip._internal.cli.main import main
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main.py", line 11, in
from pip._internal.cli.autocompletion import autocomplete
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/autocompletion.py", line 12, in
from pip._internal.cli.main_parser import create_main_parser
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main_parser.py", line 9, in
from pip._internal.build_env import get_runnable_pip
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/__init__.py", line 8, in
from pip._internal.build_env.installer import (
...<2 lines>...
)
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/installer.py", line 14, in
from pip._internal.exceptions import (
...<4 lines>...
)
ImportError: cannot import name 'BuildDependencyInstallError' from 'pip._internal.exceptions' (/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/exceptions.py)

STDERR:

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1290, in
main()
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
ToolchainCL()
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 721, in __init__
getattr(self, command)(args)
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 104, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 163, in build_dist_from_args
build_recipes(build_order, python_modules, ctx,
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 554, in build_recipes
run_pymodules_install(
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 877, in run_pymodules_install
shprint(sh.bash, '-c', (
File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 174, in shprint
for line in output:
^^^^^^
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 876, in __next__
self.wait()
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 793, in wait
self.handle_command_exit_code(exit_code)
File "/root/.local/lib/python3.12/site-packages/sh/__init__.py", line 820, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:

RAN: /usr/bin/bash -c 'source venv/bin/activate && pip install -U pip'

STDOUT:
Traceback (most recent call last):
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/pip", line 3, in
from pip._internal.cli.main import main
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main.py", line 11, in
from pip._internal.cli.autocompletion import autocomplete
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/autocompletion.py", line 12, in
from pip._internal.cli.main_parser import create_main_parser
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/cli/main_parser.py", line 9, in
from pip._internal.build_env import get_runnable_pip
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/__init__.py", line 8, in
from pip._internal.build_env.installer import (
...<2 lines>...
)
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/build_env/installer.py", line 14, in
from pip._internal.exceptions import (
...<4 lines>...
)
**ImportError: cannot import name 'BuildDependencyInstallError' from 'pip._internal.exceptions' (/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/lib/python3.14/site-packages/pip/_internal/exceptions.py)**

How could I fix it? Setting up the specific versions (I tried 3.10.12, 3.11.6, 3.12.10, 3.14.1) of hostpython3, downgrading the pip versions to <25.0.1in venv with cleaning the cache didn't help - the traceback remains the same..

Thank you for your attention and I would be grateful for any help!

Contributor guide

Open the contributing guide

Research direction

Reproduce the listed Google Colab commands and inspect the generated virtual environment where pip fails. Trace the call from pythonforandroid/toolchain.py through pythonforandroid/build.py, especially run_pymodules_install, and compare the pip components involved in the reported import mismatch. Done means the dependency-install stage completes and the Android debug build proceeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, python
Domain
build-system, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.