Repository navigation
pip install does not work in Python 3.13 on 32-bit ARM Android running on 64-bit ARM kernel #145616
Description
Activity
- addedtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
on Mar 7, 2026 CC: @thunder-coding , you did not cause this bug, but it is something that you might want to be aware is being discussed
Reacted by Yaksh BariyaThis issue belongs to https://github.com/pypa/pip. Python only maintains pip in its tree for packaging purposesnevermind, the fix belongs here. Thanks for the headsup. I dont have a arm64 device with 32-bit OS to test this againstI dont have a arm64 device with 32-bit OS to test this against
You have received documentation in the past for how to install 32-bit ARM termux-docker inside 64-bit ARM Docker inside 64-bit ARM Debian inside qemu-system-aarch64 full system emulator,
and I understand that it is slow and tedious to use that, but that's my device for reproducing and troubleshooting this issue! so technically if you wanted to check this, you could as well if you had time (I understand the emulator is very slow so it might spend too much of your time to use)
Reacted by Yaksh BariyaAlso, another way is: some physical devices (a subset of 64-bit devices) have both a
/system/libfolder and a/system/lib64folder. This is called "Android system multilib". On those devices, it is possible to install this APK https://github.com/termux/termux-app/releases/download/v0.118.3/termux-app_v0.118.3+github-debug_armeabi-v7a.apk , the 32-bit ARM APK of Termux, and then in that situation the error would also be reproducible.The tradeoff with that reproduction method is that if one already has a copy of 64-bit ARM Termux installed on the device, then it would be necessary to either uninstall that Termux first, or leave it installed but build the 32-bit ARM Termux APK with a different package name before installing it, both of which could be more inconvenient than using an emulator on PC, especially if one only has a single Android device.
Oh and lastly, GitHub Actions ARM runner is faster than an emulator and it supports running 32-bit ARM code while it has a 64-bit ARM kernel, so it can also be used to reproduce this:
https://github.com/robertkirkman/termux-on-gha/actions/runs/22766344344/job/66035103015
- addedstdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directoryand removed
on Mar 7, 2026 I have also been able to reproduce this error using build settings very close to the official CPython test suite for Android, rather than only using the downstream Termux build of CPython for Android, but in order to do so, I had to first make several other modifications to the code in order to bypass several other errors that occured due to missing support for 32-bit Android in general in other areas.
Dockerfile which can build the CPython official Android test suite for 32-bit ARM Android
FROM ubuntu:24.04 AS build # based on # https://github.com/thunder-coding/containerTube/blob/93062c010527382b0eb5372e9fd0842cb9f9a3f5/python-android-builder/Dockerfile # Install necessary packages we need to build Python RUN <<DOCKEREOF # First update our package lists, and update our packages to not do a partial upgrade. apt-get update && apt-get full-upgrade -y # Needed for getting the sources and SDK apt-get install -y git curl unzip # For actually building Python apt-get install -y build-essential python-is-python3 autoconf autoconf-archive m4 autotools-dev libffi-dev # Needed for Android command line tools apt-get install -y openjdk-21-jdk # Get rid of the apt cache to save space in the image. apt-get clean rm -rf /var/lib/apt/lists/* DOCKEREOF # Switch to a non-root user to do the rest of our work, as we don't want to be building Python as root. USER ubuntu # Setup Android command line tools needed by Python to build ENV ANDROID_HOME=/home/ubuntu/.android ARG ANDROID_COMMAND_LINE_TOOLS_VERSION=14742923 ARG ANDROID_COMMAND_LINE_TOOLS_SHA1=48833c34b761c10cb20bcd16582129395d121b27 RUN <<DOCKEREOF mkdir "$ANDROID_HOME" curl -o /tmp/cmdline-tools.zip \ https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_COMMAND_LINE_TOOLS_VERSION}_latest.zip echo "${ANDROID_COMMAND_LINE_TOOLS_SHA1} /tmp/cmdline-tools.zip" | sha1sum -c - mkdir -p "$ANDROID_HOME/cmdline-tools" cd $ANDROID_HOME/cmdline-tools unzip /tmp/cmdline-tools.zip -d . mv cmdline-tools/ latest/ rm /tmp/cmdline-tools.zip DOCKEREOF ARG GIT_REPO=https://github.com/python/cpython.git ARG GIT_BRANCH=main RUN <<DOCKEREOF git clone --branch $GIT_BRANCH $GIT_REPO /home/ubuntu/cpython cd /home/ubuntu/cpython git apply -v << 'PATCHEOF' --- a/Android/android.py +++ b/Android/android.py @@ -34,7 +34,7 @@ TESTBED_DIR = ANDROID_DIR / "testbed" CROSS_BUILD_DIR = PYTHON_DIR / "cross-build" -HOSTS = ["aarch64-linux-android", "x86_64-linux-android"] +HOSTS = ["aarch64-linux-android", "x86_64-linux-android", "arm-linux-androideabi"] APP_ID = "org.python.testbed" DECODE_ARGS = ("UTF-8", "backslashreplace") --- a/Android/testbed/app/build.gradle.kts +++ b/Android/testbed/app/build.gradle.kts @@ -16,6 +16,7 @@ val inSourceTree = ( val KNOWN_ABIS = mapOf( "aarch64-linux-android" to "arm64-v8a", "x86_64-linux-android" to "x86_64", + "arm-linux-androideabi" to "armeabi-v7a", ) // Discover prefixes. --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -701,6 +701,7 @@ def get_platform(): "i686": "x86", "aarch64": "arm64_v8a", "armv7l": "armeabi_v7a", + "arm": "armeabi_v7a", }[machine] elif osname == "linux": # At least on Linux/Intel, 'machine' is the processor -- PATCHEOF cd Android/ ./android.py configure-build ./android.py make-build ./android.py configure-host arm-linux-androideabi ./android.py make-host arm-linux-androideabi ./android.py package arm-linux-androideabi mv ../cross-build/arm-linux-androideabi/dist/python-*-arm-linux-androideabi.tar.gz \ /home/ubuntu/python-arm-linux-androideabi.tar.gz DOCKEREOF FROM scratch COPY --from=build /home/ubuntu/python-arm-linux-androideabi.tar.gz /
Yes, in order to compile CPython for 32-bit ARM Android using the official build system to get to the point of being able to reproduce the error reported here, it is necessary to first edit the same switch statement in
Lib/sysconfig/__init__.pyto handle the "arm" case, which seems to be the same "arm" from the variable that I had to set to "arm-linux-androideabi" to match the download release from the cpython-android-source-deps repository that I observed present here:Then, I was able to use these commands to build, extract and run the
python-arm-linux-androideabi.tar.gzon myarmv8ldevice connected to ADB, with ID4251484430323498.docker build --output=. . tar xf python-arm-linux-androideabi.tar.gz ./android.py test --connected 4251484430323498
The name of the failing test that matches the error I reported in this issue is "
test_build_details".0:04:51 [111/501/2] test_build_details test test_build_details failed -- Traceback (most recent call last): File "/data/user/0/org.python.testbed/files/python/lib/python3.15/test/test_build_details.py", line 80, in test_platform self.assertEqual(self.key('platform'), sysconfig.get_platform()) ~~~~~~~~~~~~~~~~~~~~~~^^ File "/data/user/0/org.python.testbed/files/python/lib/python3.15/sysconfig/__init__.py", line 699, in get_platform machine = { ~ ...<4 lines>... "arm": "armeabi_v7a", ~~~~~~~~~~~~~~~~~~~~~ }[machine] ~^^^^^^^^^ KeyError: 'armv8l' 0:04:51 [111/501/3] test_build_details failed (1 error)full test log
> curl -Lf --retry 5 --retry-all-errors -o /home/tacokoneko/code/python/testbed/gradlew https://raw.githubusercontent.com/gradle/gradle/v8.9.0/gradlew % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8784 100 8784 0 0 58073 0 0 > curl -Lf --retry 5 --retry-all-errors -o /home/tacokoneko/code/python/testbed/gradlew.bat https://raw.githubusercontent.com/gradle/gradle/v8.9.0/gradlew.bat % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2894 100 2894 0 0 20367 0 0 > curl -Lf --retry 5 --retry-all-errors -o /home/tacokoneko/code/python/testbed/gradle/wrapper/gradle-wrapper.jar https://raw.githubusercontent.com/gradle/gradle/v8.9.0/gradle/wrapper/gradle-wrapper.jar % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 43504 100 43504 0 0 273.5k 0 0 Waiting for app to start - this may take several minutes PID: 13926 == CPython 3.15.0a7+ (heads/main-dirty:2f4e4ec2e72, Mar 15 2026, 15:04:38) [Clang 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456 == Android-10-armv8l-32bit little-endian == Python build: release shared == cwd: /data/data/org.python.testbed/cache/test_python_worker_13926æ == CPU count: 8 == encodings: locale=utf-8 FS=utf-8 == resources: all test resources are disabled, use -u option to unskip tests Using random seed: 48355940 0:00:00 Run 501 tests sequentially in a single process 0:00:00 [ 1/501] test.test_asyncio.test_base_events 0:00:03 [ 1/501] test.test_asyncio.test_base_events passed 0:00:03 [ 2/501] test.test_asyncio.test_buffered_proto 0:00:03 [ 2/501] test.test_asyncio.test_buffered_proto passed 0:00:03 [ 3/501] test.test_asyncio.test_context 0:00:04 [ 3/501] test.test_asyncio.test_context passed 0:00:04 [ 4/501] test.test_asyncio.test_eager_task_factory 0:00:09 [ 4/501] test.test_asyncio.test_eager_task_factory passed 0:00:09 [ 5/501] test.test_asyncio.test_events test test.test_asyncio.test_events failed -- multiple errors occurred; run in verbose mode for details 0:00:36 [ 5/501/1] test.test_asyncio.test_events failed (3 errors) 0:00:36 [ 6/501/1] test.test_asyncio.test_free_threading 0:00:40 [ 6/501/1] test.test_asyncio.test_free_threading passed 0:00:40 [ 7/501/1] test.test_asyncio.test_futures 0:00:48 [ 7/501/1] test.test_asyncio.test_futures passed 0:00:48 [ 8/501/1] test.test_asyncio.test_futures2 0:00:48 [ 8/501/1] test.test_asyncio.test_futures2 passed 0:00:48 [ 9/501/1] test.test_asyncio.test_graph 0:00:48 [ 9/501/1] test.test_asyncio.test_graph passed 0:00:48 [ 10/501/1] test.test_asyncio.test_locks 0:00:50 [ 10/501/1] test.test_asyncio.test_locks passed 0:00:50 [ 11/501/1] test.test_asyncio.test_pep492 0:00:50 [ 11/501/1] test.test_asyncio.test_pep492 passed 0:00:50 [ 12/501/1] test.test_asyncio.test_proactor_events 0:00:51 [ 12/501/1] test.test_asyncio.test_proactor_events passed 0:00:51 [ 13/501/1] test.test_asyncio.test_protocols 0:00:51 [ 13/501/1] test.test_asyncio.test_protocols passed 0:00:51 [ 14/501/1] test.test_asyncio.test_queues 0:00:52 [ 14/501/1] test.test_asyncio.test_queues passed 0:00:52 [ 15/501/1] test.test_asyncio.test_runners 0:00:52 [ 15/501/1] test.test_asyncio.test_runners passed 0:00:52 [ 16/501/1] test.test_asyncio.test_selector_events 0:00:53 [ 16/501/1] test.test_asyncio.test_selector_events passed 0:00:53 [ 17/501/1] test.test_asyncio.test_sendfile 0:01:01 [ 17/501/1] test.test_asyncio.test_sendfile passed 0:01:01 [ 18/501/1] test.test_asyncio.test_server 0:01:02 [ 18/501/1] test.test_asyncio.test_server passed 0:01:02 [ 19/501/1] test.test_asyncio.test_sock_lowlevel 0:01:06 [ 19/501/1] test.test_asyncio.test_sock_lowlevel passed 0:01:06 [ 20/501/1] test.test_asyncio.test_ssl 0:01:28 [ 20/501/1] test.test_asyncio.test_ssl passed 0:01:28 [ 21/501/1] test.test_asyncio.test_sslproto 0:01:34 [ 21/501/1] test.test_asyncio.test_sslproto passed 0:01:34 [ 22/501/1] test.test_asyncio.test_staggered 0:01:34 [ 22/501/1] test.test_asyncio.test_staggered passed 0:01:34 [ 23/501/1] test.test_asyncio.test_streams 0:01:36 [ 23/501/1] test.test_asyncio.test_streams passed 0:01:36 [ 24/501/1] test.test_asyncio.test_subprocess test.test_asyncio.test_subprocess skipped -- test module requires subprocess 0:01:36 [ 24/501/1] test.test_asyncio.test_subprocess skipped 0:01:36 [ 25/501/1] test.test_asyncio.test_taskgroups 0:01:51 [ 25/501/1] test.test_asyncio.test_taskgroups passed 0:01:51 [ 26/501/1] test.test_asyncio.test_tasks 0:02:26 [ 26/501/1] test.test_asyncio.test_tasks passed in 35.2 sec 0:02:26 [ 27/501/1] test.test_asyncio.test_threads 0:02:26 [ 27/501/1] test.test_asyncio.test_threads passed 0:02:26 [ 28/501/1] test.test_asyncio.test_timeouts 0:02:27 [ 28/501/1] test.test_asyncio.test_timeouts passed 0:02:27 [ 29/501/1] test.test_asyncio.test_tools 0:02:28 [ 29/501/1] test.test_asyncio.test_tools passed 0:02:28 [ 30/501/1] test.test_asyncio.test_transports 0:02:28 [ 30/501/1] test.test_asyncio.test_transports passed 0:02:28 [ 31/501/1] test.test_asyncio.test_unix_events 0:02:29 [ 31/501/1] test.test_asyncio.test_unix_events passed 0:02:29 [ 32/501/1] test.test_asyncio.test_waitfor 0:02:30 [ 32/501/1] test.test_asyncio.test_waitfor passed 0:02:30 [ 33/501/1] test.test_asyncio.test_windows_events test.test_asyncio.test_windows_events skipped -- Windows only 0:02:30 [ 33/501/1] test.test_asyncio.test_windows_events skipped 0:02:30 [ 34/501/1] test.test_asyncio.test_windows_utils test.test_asyncio.test_windows_utils skipped -- Windows only 0:02:30 [ 34/501/1] test.test_asyncio.test_windows_utils skipped 0:02:30 [ 35/501/1] test.test_concurrent_futures.test_as_completed 0:02:39 [ 35/501/1] test.test_concurrent_futures.test_as_completed passed 0:02:39 [ 36/501/1] test.test_concurrent_futures.test_deadlock 0:02:39 [ 36/501/1] test.test_concurrent_futures.test_deadlock passed 0:02:39 [ 37/501/1] test.test_concurrent_futures.test_future 0:02:43 [ 37/501/1] test.test_concurrent_futures.test_future passed 0:02:43 [ 38/501/1] test.test_concurrent_futures.test_init 0:02:44 [ 38/501/1] test.test_concurrent_futures.test_init passed 0:02:44 [ 39/501/1] test.test_concurrent_futures.test_interpreter_pool 0:02:59 [ 39/501/1] test.test_concurrent_futures.test_interpreter_pool passed 0:02:59 [ 40/501/1] test.test_concurrent_futures.test_process_pool 0:03:00 [ 40/501/1] test.test_concurrent_futures.test_process_pool passed 0:03:00 [ 41/501/1] test.test_concurrent_futures.test_shutdown 0:03:01 [ 41/501/1] test.test_concurrent_futures.test_shutdown passed 0:03:01 [ 42/501/1] test.test_concurrent_futures.test_thread_pool 0:03:02 [ 42/501/1] test.test_concurrent_futures.test_thread_pool passed 0:03:02 [ 43/501/1] test.test_concurrent_futures.test_wait 0:03:03 [ 43/501/1] test.test_concurrent_futures.test_wait passed 0:03:03 [ 44/501/1] test.test_future_stmt.test_future 0:03:03 [ 44/501/1] test.test_future_stmt.test_future passed 0:03:03 [ 45/501/1] test.test_future_stmt.test_future_flags 0:03:03 [ 45/501/1] test.test_future_stmt.test_future_flags passed 0:03:03 [ 46/501/1] test.test_future_stmt.test_future_multiple_features 0:03:04 [ 46/501/1] test.test_future_stmt.test_future_multiple_features passed 0:03:04 [ 47/501/1] test.test_future_stmt.test_future_multiple_imports 0:03:04 [ 47/501/1] test.test_future_stmt.test_future_multiple_imports passed 0:03:04 [ 48/501/1] test.test_future_stmt.test_future_single_import 0:03:04 [ 48/501/1] test.test_future_stmt.test_future_single_import passed 0:03:04 [ 49/501/1] test.test_gdb.test_backtrace test.test_gdb.test_backtrace skipped -- test_gdb only works on source builds at the moment. 0:03:04 [ 49/501/1] test.test_gdb.test_backtrace skipped 0:03:04 [ 50/501/1] test.test_gdb.test_cfunction test.test_gdb.test_cfunction skipped -- test_gdb only works on source builds at the moment. 0:03:04 [ 50/501/1] test.test_gdb.test_cfunction skipped 0:03:04 [ 51/501/1] test.test_gdb.test_cfunction_full test.test_gdb.test_cfunction_full skipped -- test_gdb only works on source builds at the moment. 0:03:05 [ 51/501/1] test.test_gdb.test_cfunction_full skipped 0:03:05 [ 52/501/1] test.test_gdb.test_misc test.test_gdb.test_misc skipped -- test_gdb only works on source builds at the moment. 0:03:05 [ 52/501/1] test.test_gdb.test_misc skipped 0:03:05 [ 53/501/1] test.test_gdb.test_pretty_print test.test_gdb.test_pretty_print skipped -- test_gdb only works on source builds at the moment. 0:03:05 [ 53/501/1] test.test_gdb.test_pretty_print skipped 0:03:05 [ 54/501/1] test.test_inspect.test_inspect 0:03:07 [ 54/501/1] test.test_inspect.test_inspect passed 0:03:07 [ 55/501/1] test.test_io.test_bufferedio 0:03:12 [ 55/501/1] test.test_io.test_bufferedio passed 0:03:12 [ 56/501/1] test.test_io.test_file 0:03:13 [ 56/501/1] test.test_io.test_file passed 0:03:13 [ 57/501/1] test.test_io.test_fileio 0:03:13 [ 57/501/1] test.test_io.test_fileio passed 0:03:13 [ 58/501/1] test.test_io.test_general 0:03:17 [ 58/501/1] test.test_io.test_general passed 0:03:17 [ 59/501/1] test.test_io.test_largefile 0:03:17 [ 59/501/1] test.test_io.test_largefile passed 0:03:17 [ 60/501/1] test.test_io.test_memoryio 0:03:18 [ 60/501/1] test.test_io.test_memoryio passed 0:03:18 [ 61/501/1] test.test_io.test_signals 0:03:27 [ 61/501/1] test.test_io.test_signals passed 0:03:27 [ 62/501/1] test.test_io.test_textio 0:03:30 [ 62/501/1] test.test_io.test_textio passed 0:03:30 [ 63/501/1] test.test_io.test_univnewlines 0:03:30 [ 63/501/1] test.test_io.test_univnewlines passed 0:03:30 [ 64/501/1] test.test_multiprocessing_fork.test_manager test.test_multiprocessing_fork.test_manager skipped -- No module named '_multiprocessing' 0:03:31 [ 64/501/1] test.test_multiprocessing_fork.test_manager skipped 0:03:31 [ 65/501/1] test.test_multiprocessing_fork.test_misc test.test_multiprocessing_fork.test_misc skipped -- No module named '_multiprocessing' 0:03:31 [ 65/501/1] test.test_multiprocessing_fork.test_misc skipped 0:03:31 [ 66/501/1] test.test_multiprocessing_fork.test_processes test.test_multiprocessing_fork.test_processes skipped -- No module named '_multiprocessing' 0:03:31 [ 66/501/1] test.test_multiprocessing_fork.test_processes skipped 0:03:31 [ 67/501/1] test.test_multiprocessing_fork.test_threads test.test_multiprocessing_fork.test_threads skipped -- No module named '_multiprocessing' 0:03:31 [ 67/501/1] test.test_multiprocessing_fork.test_threads skipped 0:03:31 [ 68/501/1] test.test_multiprocessing_forkserver.test_manager test.test_multiprocessing_forkserver.test_manager skipped -- requires working os.fork() 0:03:32 [ 68/501/1] test.test_multiprocessing_forkserver.test_manager skipped 0:03:32 [ 69/501/1] test.test_multiprocessing_forkserver.test_misc test.test_multiprocessing_forkserver.test_misc skipped -- requires working os.fork() 0:03:32 [ 69/501/1] test.test_multiprocessing_forkserver.test_misc skipped 0:03:32 [ 70/501/1] test.test_multiprocessing_forkserver.test_preload test.test_multiprocessing_forkserver.test_preload skipped -- requires working os.fork() 0:03:32 [ 70/501/1] test.test_multiprocessing_forkserver.test_preload skipped 0:03:32 [ 71/501/1] test.test_multiprocessing_forkserver.test_processes test.test_multiprocessing_forkserver.test_processes skipped -- requires working os.fork() 0:03:32 [ 71/501/1] test.test_multiprocessing_forkserver.test_processes skipped 0:03:32 [ 72/501/1] test.test_multiprocessing_forkserver.test_threads test.test_multiprocessing_forkserver.test_threads skipped -- requires working os.fork() 0:03:32 [ 72/501/1] test.test_multiprocessing_forkserver.test_threads skipped 0:03:32 [ 73/501/1] test.test_multiprocessing_spawn.test_manager test.test_multiprocessing_spawn.test_manager skipped -- No module named '_multiprocessing' 0:03:33 [ 73/501/1] test.test_multiprocessing_spawn.test_manager skipped 0:03:33 [ 74/501/1] test.test_multiprocessing_spawn.test_misc test.test_multiprocessing_spawn.test_misc skipped -- No module named '_multiprocessing' 0:03:33 [ 74/501/1] test.test_multiprocessing_spawn.test_misc skipped 0:03:33 [ 75/501/1] test.test_multiprocessing_spawn.test_processes test.test_multiprocessing_spawn.test_processes skipped -- No module named '_multiprocessing' 0:03:33 [ 75/501/1] test.test_multiprocessing_spawn.test_processes skipped 0:03:33 [ 76/501/1] test.test_multiprocessing_spawn.test_threads test.test_multiprocessing_spawn.test_threads skipped -- No module named '_multiprocessing' 0:03:33 [ 76/501/1] test.test_multiprocessing_spawn.test_threads skipped 0:03:33 [ 77/501/1] test.test_os.test_os 0:03:35 [ 77/501/1] test.test_os.test_os passed 0:03:35 [ 78/501/1] test.test_os.test_posix 0:03:36 [ 78/501/1] test.test_os.test_posix passed 0:03:36 [ 79/501/1] test.test_os.test_windows test.test_os.test_windows skipped -- Win32 specific tests 0:03:36 [ 79/501/1] test.test_os.test_windows skipped 0:03:36 [ 80/501/1] test.test_pydoc.test_pydoc 0:03:39 [ 80/501/1] test.test_pydoc.test_pydoc passed 0:03:39 [ 81/501/1] test___all__ 0:03:49 [ 81/501/1] test___all__ passed 0:03:49 [ 82/501/1] test__colorize 0:03:50 [ 82/501/1] test__colorize passed 0:03:50 [ 83/501/1] test__interpchannels 0:03:52 [ 83/501/1] test__interpchannels passed 0:03:52 [ 84/501/1] test__interpreters 0:03:56 [ 84/501/1] test__interpreters passed 0:03:56 [ 85/501/1] test__locale 0:03:56 [ 85/501/1] test__locale passed 0:03:56 [ 86/501/1] test__opcode 0:03:57 [ 86/501/1] test__opcode passed 0:03:57 [ 87/501/1] test__osx_support 0:03:57 [ 87/501/1] test__osx_support passed 0:03:57 [ 88/501/1] test_abc 0:03:58 [ 88/501/1] test_abc passed 0:03:58 [ 89/501/1] test_abstract_numbers 0:03:58 [ 89/501/1] test_abstract_numbers passed 0:03:58 [ 90/501/1] test_android aHelloHello world olé中文😀\xc0\x80a\xc0\x80\xc0\x80ba\xc0\x80b\xffa\xff\xffba\xffb x a b c d exxf g hello hello world bytearraymemoryviewmmrve\xc0\x80\xc0\x80\xc0\x80\xfe\xff\xff\xffaHelloHello world olé中文😀\xc0\x80a\xc0\x80\xc0\x80ba\xc0\x80b\xffa\xff\xffba\xffb x a b c d exxf g hello hello world bytearraymemoryviewmmrve\xc0\x80\xc0\x80\xc0\x80\xfe\xff\xff\xffaHelloHello world olé中文😀\ud800\udc00\udc80\xc0\x80a\xc0\x80\xc0\x80ba\xc0\x80b x a aHelloHello world olé中文😀\ud800\udc00\udc80\xc0\x80a\xc0\x80\xc0\x80ba\xc0\x80b x a test test_android failed -- multiple errors occurred; run in verbose mode for details 0:04:21 [ 90/501/2] test_android failed (2 failures) 0:04:21 [ 91/501/2] test_annotationlib 0:04:22 [ 91/501/2] test_annotationlib passed 0:04:22 [ 92/501/2] test_apple test_apple skipped -- Apple-specific 0:04:22 [ 92/501/2] test_apple skipped 0:04:22 [ 93/501/2] test_argparse test_argparse skipped -- test module requires subprocess 0:04:23 [ 93/501/2] test_argparse skipped 0:04:23 [ 94/501/2] test_array 0:04:32 [ 94/501/2] test_array passed 0:04:32 [ 95/501/2] test_asdl_parser test_asdl_parser skipped -- test irrelevant for an installed Python 0:04:33 [ 95/501/2] test_asdl_parser skipped 0:04:33 [ 96/501/2] test_ast 0:04:36 [ 96/501/2] test_ast passed 0:04:36 [ 97/501/2] test_asyncgen 0:04:39 [ 97/501/2] test_asyncgen passed 0:04:39 [ 98/501/2] test_atexit 0:04:41 [ 98/501/2] test_atexit passed 0:04:41 [ 99/501/2] test_audit 0:04:42 [ 99/501/2] test_audit passed 0:04:42 [100/501/2] test_augassign 0:04:42 [100/501/2] test_augassign passed 0:04:42 [101/501/2] test_base64 0:04:43 [101/501/2] test_base64 passed 0:04:43 [102/501/2] test_baseexception 0:04:43 [102/501/2] test_baseexception passed 0:04:43 [103/501/2] test_bdb 0:04:44 [103/501/2] test_bdb passed 0:04:44 [104/501/2] test_bigaddrspace 0:04:45 [104/501/2] test_bigaddrspace passed 0:04:45 [105/501/2] test_bigmem 0:04:45 [105/501/2] test_bigmem passed 0:04:45 [106/501/2] test_binascii 0:04:46 [106/501/2] test_binascii passed 0:04:46 [107/501/2] test_binop 0:04:46 [107/501/2] test_binop passed 0:04:46 [108/501/2] test_bisect 0:04:47 [108/501/2] test_bisect passed 0:04:47 [109/501/2] test_bool 0:04:47 [109/501/2] test_bool passed 0:04:47 [110/501/2] test_buffer 0:04:51 [110/501/2] test_buffer passed 0:04:51 [111/501/2] test_build_details test test_build_details failed -- Traceback (most recent call last): File "/data/user/0/org.python.testbed/files/python/lib/python3.15/test/test_build_details.py", line 80, in test_platform self.assertEqual(self.key('platform'), sysconfig.get_platform()) ~~~~~~~~~~~~~~~~~~~~~~^^ File "/data/user/0/org.python.testbed/files/python/lib/python3.15/sysconfig/__init__.py", line 699, in get_platform machine = { ~ ...<4 lines>... "arm": "armeabi_v7a", ~~~~~~~~~~~~~~~~~~~~~ }[machine] ~^^^^^^^^^ KeyError: 'armv8l' 0:04:51 [111/501/3] test_build_details failed (1 error) 0:04:51 [112/501/3] test_builtin 0:04:52 [112/501/3] test_builtin passed 0:04:52 [113/501/3] test_bytes 0:05:03 [113/501/3] test_bytes passed 0:05:03 [114/501/3] test_bz2 0:05:07 [114/501/3] test_bz2 passed 0:05:07 [115/501/3] test_c_locale_coercion 0:05:07 [115/501/3] test_c_locale_coercion passed 0:05:07 [116/501/3] test_calendar 0:05:08 [116/501/3] test_calendar passed 0:05:08 [117/501/3] test_call 0:05:09 [117/501/3] test_call passed 0:05:09 [118/501/3] test_capi 0:05:25 [118/501/3] test_capi passed 0:05:25 [119/501/3] test_cext 0:05:25 [119/501/3] test_cext passed 0:05:25 [120/501/3] test_charmapcodec 0:05:26 [120/501/3] test_charmapcodec passed 0:05:26 [121/501/3] test_class 0:05:26 [121/501/3] test_class passed 0:05:26 [122/501/3] test_clinic test_clinic skipped -- test module requires subprocess 0:05:27 [122/501/3] test_clinic skipped 0:05:27 [123/501/3] test_cmath 0:05:28 [123/501/3] test_cmath passed 0:05:28 [124/501/3] test_cmd 0:05:28 [124/501/3] test_cmd passed 0:05:28 [125/501/3] test_cmd_line test_cmd_line skipped -- test module requires subprocess 0:05:29 [125/501/3] test_cmd_line skipped 0:05:29 [126/501/3] test_cmd_line_script 0:05:29 [126/501/3] test_cmd_line_script passed 0:05:29 [127/501/3] test_code 0:05:31 [127/501/3] test_code passed 0:05:31 [128/501/3] test_code_module 0:05:31 [128/501/3] test_code_module passed 0:05:31 [129/501/3] test_codeccallbacks 0:05:32 [129/501/3] test_codeccallbacks passed 0:05:32 [130/501/3] test_codecencodings_cn 0:05:33 [130/501/3] test_codecencodings_cn passed 0:05:33 [131/501/3] test_codecencodings_hk 0:05:33 [131/501/3] test_codecencodings_hk passed 0:05:33 [132/501/3] test_codecencodings_iso2022 0:05:34 [132/501/3] test_codecencodings_iso2022 passed 0:05:34 [133/501/3] test_codecencodings_jp 0:05:35 [133/501/3] test_codecencodings_jp passed 0:05:35 [134/501/3] test_codecencodings_kr 0:05:36 [134/501/3] test_codecencodings_kr passed 0:05:36 [135/501/3] test_codecencodings_tw 0:05:37 [135/501/3] test_codecencodings_tw passed 0:05:37 [136/501/3] test_codecmaps_cn 0:05:37 [136/501/3] test_codecmaps_cn passed 0:05:37 [137/501/3] test_codecmaps_hk 0:05:38 [137/501/3] test_codecmaps_hk passed 0:05:38 [138/501/3] test_codecmaps_jp 0:05:38 [138/501/3] test_codecmaps_jp passed 0:05:38 [139/501/3] test_codecmaps_kr 0:05:39 [139/501/3] test_codecmaps_kr passed 0:05:39 [140/501/3] test_codecmaps_tw 0:05:39 [140/501/3] test_codecmaps_tw passed 0:05:39 [141/501/3] test_codecs 0:05:41 [141/501/3] test_codecs passed 0:05:41 [142/501/3] test_codeop 0:05:42 [142/501/3] test_codeop passed 0:05:42 [143/501/3] test_collections 0:05:44 [143/501/3] test_collections passed 0:05:44 [144/501/3] test_colorsys 0:05:45 [144/501/3] test_colorsys passed 0:05:45 [145/501/3] test_compare 0:05:46 [145/501/3] test_compare passed 0:05:46 [146/501/3] test_compile 0:05:51 [146/501/3] test_compile passed 0:05:51 [147/501/3] test_compileall 0:05:52 [147/501/3] test_compileall passed 0:05:52 [148/501/3] test_compiler_assemble 0:05:52 [148/501/3] test_compiler_assemble passed 0:05:52 [149/501/3] test_compiler_codegen 0:05:53 [149/501/3] test_compiler_codegen passed 0:05:53 [150/501/3] test_complex 0:05:54 [150/501/3] test_complex passed 0:05:54 [151/501/3] test_configparser 0:05:55 [151/501/3] test_configparser passed 0:05:55 [152/501/3] test_contains 0:05:56 [152/501/3] test_contains passed 0:05:56 [153/501/3] test_context 0:05:59 [153/501/3] test_context passed 0:05:59 [154/501/3] test_contextlib 0:06:03 [154/501/3] test_contextlib passed 0:06:03 [155/501/3] test_contextlib_async 0:06:05 [155/501/3] test_contextlib_async passed 0:06:05 [156/501/3] test_copy 0:06:10 [156/501/3] test_copy passed 0:06:10 [157/501/3] test_copyreg 0:06:12 [157/501/3] test_copyreg passed 0:06:12 [158/501/3] test_coroutines 0:06:17 [158/501/3] test_coroutines passed 0:06:17 [159/501/3] test_cppext 0:06:19 [159/501/3] test_cppext passed 0:06:19 [160/501/3] test_crossinterp 0:06:23 [160/501/3] test_crossinterp passed 0:06:23 [161/501/3] test_csv 0:06:24 [161/501/3] test_csv passed 0:06:24 [162/501/3] test_ctypes 0:06:28 [162/501/3] test_ctypes passed 0:06:28 [163/501/3] test_curses test_curses skipped -- Use of the 'curses' resource not enabled 0:06:29 [163/501/3] test_curses skipped (resource denied) 0:06:29 [164/501/3] test_dataclasses 0:06:31 [164/501/3] test_dataclasses passed 0:06:31 [165/501/3] test_datetime 0:06:35 [165/501/3] test_datetime passed 0:06:35 [166/501/3] test_dbm 0:06:37 [166/501/3] test_dbm passed 0:06:37 [167/501/3] test_dbm_dumb 0:06:38 [167/501/3] test_dbm_dumb passed 0:06:38 [168/501/3] test_dbm_gnu test_dbm_gnu skipped -- No module named '_gdbm' 0:06:38 [168/501/3] test_dbm_gnu skipped 0:06:38 [169/501/3] test_dbm_ndbm test_dbm_ndbm skipped -- No module named '_dbm' 0:06:39 [169/501/3] test_dbm_ndbm skipped 0:06:39 [170/501/3] test_dbm_sqlite3 0:06:41 [170/501/3] test_dbm_sqlite3 passed 0:06:41 [171/501/3] test_decimal C tests skipped: no module named _decimal. 0:06:45 [171/501/3] test_decimal passed 0:06:45 [172/501/3] test_decorators 0:06:46 [172/501/3] test_decorators passed 0:06:46 [173/501/3] test_defaultdict 0:06:46 [173/501/3] test_defaultdict passed 0:06:46 [174/501/3] test_deque 0:06:55 [174/501/3] test_deque passed 0:06:55 [175/501/3] test_descr 0:06:59 [175/501/3] test_descr passed 0:06:59 [176/501/3] test_descrtut 0:07:00 [176/501/3] test_descrtut passed 0:07:00 [177/501/3] test_devpoll test_devpoll skipped -- test works only on Solaris OS family 0:07:00 [177/501/3] test_devpoll skipped 0:07:00 [178/501/3] test_dict 0:07:03 [178/501/3] test_dict passed 0:07:03 [179/501/3] test_dictcomps 0:07:04 [179/501/3] test_dictcomps passed 0:07:04 [180/501/3] test_dictviews 0:07:05 [180/501/3] test_dictviews passed 0:07:05 [181/501/3] test_difflib 0:07:07 [181/501/3] test_difflib passed 0:07:07 [182/501/3] test_dis 0:07:09 [182/501/3] test_dis passed 0:07:09 [183/501/3] test_doctest 0:07:10 [183/501/3] test_doctest passed 0:07:10 [184/501/3] test_docxmlrpc 0:07:13 [184/501/3] test_docxmlrpc passed 0:07:13 [185/501/3] test_dtrace test_dtrace skipped -- test module requires subprocess 0:07:14 [185/501/3] test_dtrace skipped 0:07:14 [186/501/3] test_dynamic 0:07:14 [186/501/3] test_dynamic passed 0:07:14 [187/501/3] test_dynamicclassattribute 0:07:15 [187/501/3] test_dynamicclassattribute passed 0:07:15 [188/501/3] test_eintr 0:07:15 [188/501/3] test_eintr passed 0:07:15 [189/501/3] test_email 0:07:20 [189/501/3] test_email passed 0:07:20 [190/501/3] test_embed test_embed skipped -- test module requires subprocess 0:07:20 [190/501/3] test_embed skipped 0:07:20 [191/501/3] test_ensurepip 0:07:21 [191/501/3] test_ensurepip passed 0:07:21 [192/501/3] test_enum 0:07:24 [192/501/3] test_enum passed 0:07:24 [193/501/3] test_enumerate 0:07:26 [193/501/3] test_enumerate passed 0:07:26 [194/501/3] test_eof 0:07:26 [194/501/3] test_eof passed 0:07:26 [195/501/3] test_epoll 0:07:27 [195/501/3] test_epoll passed 0:07:27 [196/501/3] test_errno 0:07:28 [196/501/3] test_errno passed 0:07:28 [197/501/3] test_except_star 0:07:28 [197/501/3] test_except_star passed 0:07:28 [198/501/3] test_exception_group 0:07:30 [198/501/3] test_exception_group passed 0:07:30 [199/501/3] test_exception_hierarchy 0:07:31 [199/501/3] test_exception_hierarchy passed 0:07:31 [200/501/3] test_exception_variations 0:07:31 [200/501/3] test_exception_variations passed 0:07:31 [201/501/3] test_exceptions 0:07:37 [201/501/3] test_exceptions passed 0:07:37 [202/501/3] test_extcall 0:07:38 [202/501/3] test_extcall passed 0:07:38 [203/501/3] test_external_inspection 0:07:39 [203/501/3] test_external_inspection passed 0:07:39 [204/501/3] test_faulthandler test_faulthandler skipped -- test module requires subprocess 0:07:39 [204/501/3] test_faulthandler skipped 0:07:39 [205/501/3] test_fcntl 0:07:40 [205/501/3] test_fcntl passed 0:07:40 [206/501/3] test_file_eintr test_file_eintr skipped -- test module requires subprocess 0:07:40 [206/501/3] test_file_eintr skipped 0:07:40 [207/501/3] test_filecmp 0:07:41 [207/501/3] test_filecmp passed 0:07:41 [208/501/3] test_fileinput 0:07:42 [208/501/3] test_fileinput passed 0:07:42 [209/501/3] test_fileutils 0:07:43 [209/501/3] test_fileutils passed 0:07:43 [210/501/3] test_finalization 0:07:48 [210/501/3] test_finalization passed 0:07:48 [211/501/3] test_float 0:07:49 [211/501/3] test_float passed 0:07:49 [212/501/3] test_flufl 0:07:50 [212/501/3] test_flufl passed 0:07:50 [213/501/3] test_fnmatch 0:07:51 [213/501/3] test_fnmatch passed 0:07:51 [214/501/3] test_fork1 test_fork1 skipped -- test module requires working os.fork 0:07:51 [214/501/3] test_fork1 skipped 0:07:51 [215/501/3] test_format 0:07:52 [215/501/3] test_format passed 0:07:52 [216/501/3] test_fractions 0:07:53 [216/501/3] test_fractions passed 0:07:53 [217/501/3] test_frame 0:07:56 [217/501/3] test_frame passed 0:07:56 [218/501/3] test_frame_pointer_unwind test_frame_pointer_unwind skipped -- test requires subprocess support 0:07:57 [218/501/3] test_frame_pointer_unwind skipped 0:07:57 [219/501/3] test_free_threading test_free_threading skipped -- GIL enabled 0:07:57 [219/501/3] test_free_threading skipped 0:07:57 [220/501/3] test_frozen 0:07:58 [220/501/3] test_frozen passed 0:07:58 [221/501/3] test_fstring 0:08:28 [221/501/3] test_fstring passed 0:08:28 [222/501/3] test_ftplib 0:08:31 [222/501/3] test_ftplib passed 0:08:31 [223/501/3] test_funcattrs 0:08:32 [223/501/3] test_funcattrs passed 0:08:32 [224/501/3] test_functools 0:08:36 [224/501/3] test_functools passed 0:08:36 [225/501/3] test_gc 0:08:48 [225/501/3] test_gc passed 0:08:48 [226/501/3] test_generated_cases test_generated_cases skipped -- test module requires subprocess 0:08:48 [226/501/3] test_generated_cases skipped 0:08:48 [227/501/3] test_generator_stop 0:08:49 [227/501/3] test_generator_stop passed 0:08:49 [228/501/3] test_generators 0:08:51 [228/501/3] test_generators passed 0:08:51 [229/501/3] test_genericalias 0:08:52 [229/501/3] test_genericalias passed 0:08:52 [230/501/3] test_genericclass 0:08:53 [230/501/3] test_genericclass passed 0:08:53 [231/501/3] test_genericpath 0:08:53 [231/501/3] test_genericpath passed 0:08:53 [232/501/3] test_genexps 0:08:54 [232/501/3] test_genexps passed 0:08:54 [233/501/3] test_getopt test_getopt skipped -- test module requires subprocess 0:08:55 [233/501/3] test_getopt skipped 0:08:55 [234/501/3] test_getpass 0:08:55 [234/501/3] test_getpass passed 0:08:55 [235/501/3] test_getpath 0:08:56 [235/501/3] test_getpath passed 0:08:56 [236/501/3] test_gettext 0:08:57 [236/501/3] test_gettext passed 0:08:57 [237/501/3] test_glob 0:08:58 [237/501/3] test_glob passed 0:08:58 [238/501/3] test_global 0:08:59 [238/501/3] test_global passed 0:08:59 [239/501/3] test_grammar 0:08:59 [239/501/3] test_grammar passed 0:08:59 [240/501/3] test_graphlib 0:09:00 [240/501/3] test_graphlib passed 0:09:00 [241/501/3] test_grp test_grp skipped -- No module named 'grp' 0:09:01 [241/501/3] test_grp skipped 0:09:01 [242/501/3] test_gzip 0:09:03 [242/501/3] test_gzip passed 0:09:03 [243/501/3] test_hash 0:09:03 [243/501/3] test_hash passed 0:09:03 [244/501/3] test_hashlib 0:09:07 [244/501/3] test_hashlib passed 0:09:07 [245/501/3] test_heapq 0:09:09 [245/501/3] test_heapq passed 0:09:09 [246/501/3] test_hmac 0:09:10 [246/501/3] test_hmac passed 0:09:10 [247/501/3] test_html 0:09:10 [247/501/3] test_html passed 0:09:10 [248/501/3] test_htmlparser 0:09:11 [248/501/3] test_htmlparser passed 0:09:11 [249/501/3] test_http_cookiejar 0:09:13 [249/501/3] test_http_cookiejar passed 0:09:13 [250/501/3] test_http_cookies 0:09:13 [250/501/3] test_http_cookies passed 0:09:13 [251/501/3] test_httplib 0:09:15 [251/501/3] test_httplib passed 0:09:15 [252/501/3] test_httpservers 0:09:19 [252/501/3] test_httpservers passed 0:09:19 [253/501/3] test_idle test_idle skipped -- No module named '_tkinter' 0:09:20 [253/501/3] test_idle skipped 0:09:20 [254/501/3] test_imaplib 0:09:48 [254/501/3] test_imaplib passed 0:09:48 [255/501/3] test_import 0:09:53 [255/501/3] test_import passed 0:09:53 [256/501/3] test_importlib 0:10:04 [256/501/3] test_importlib passed 0:10:04 [257/501/3] test_index 0:10:05 [257/501/3] test_index passed 0:10:05 [258/501/3] test_int 0:10:08 [258/501/3] test_int passed 0:10:08 [259/501/3] test_int_literal 0:10:09 [259/501/3] test_int_literal passed 0:10:09 [260/501/3] test_interpreters 0:10:45 [260/501/3] test_interpreters passed in 35.7 sec 0:10:45 [261/501/3] test_ioctl 0:10:47 [261/501/3] test_ioctl passed 0:10:47 [262/501/3] test_ipaddress 0:10:51 [262/501/3] test_ipaddress passed 0:10:51 [263/501/3] test_isinstance 0:10:55 [263/501/3] test_isinstance passed 0:10:55 [264/501/3] test_iter 0:10:59 [264/501/3] test_iter passed 0:10:59 [265/501/3] test_iterlen 0:11:00 [265/501/3] test_iterlen passed 0:11:00 [266/501/3] test_itertools 0:11:05 [266/501/3] test_itertools passed 0:11:05 [267/501/3] test_json 0:11:07 [267/501/3] test_json passed 0:11:07 [268/501/3] test_keyword 0:11:08 [268/501/3] test_keyword passed 0:11:08 [269/501/3] test_keywordonlyarg 0:11:09 [269/501/3] test_keywordonlyarg passed 0:11:09 [270/501/3] test_kqueue test_kqueue skipped -- test works only on BSD 0:11:09 [270/501/3] test_kqueue skipped 0:11:09 [271/501/3] test_launcher test_launcher skipped -- test only applies to Windows 0:11:10 [271/501/3] test_launcher skipped 0:11:10 [272/501/3] test_lazy_import BAR_MODULE_LOADED 0:11:11 [272/501/3] test_lazy_import passed 0:11:11 [273/501/3] test_linecache 0:11:12 [273/501/3] test_linecache passed 0:11:12 [274/501/3] test_list 0:11:13 [274/501/3] test_list passed 0:11:13 [275/501/3] test_listcomps 0:11:14 [275/501/3] test_listcomps passed 0:11:14 [276/501/3] test_lltrace 0:11:15 [276/501/3] test_lltrace passed 0:11:15 [277/501/3] test_locale 0:11:16 [277/501/3] test_locale passed 0:11:16 [278/501/3] test_logging 0:11:33 [278/501/3] test_logging passed 0:11:33 [279/501/3] test_long 0:11:46 [279/501/3] test_long passed 0:11:46 [280/501/3] test_longexp 0:11:47 [280/501/3] test_longexp passed 0:11:47 [281/501/3] test_lzma 0:11:49 [281/501/3] test_lzma passed 0:11:49 [282/501/3] test_mailbox 0:11:54 [282/501/3] test_mailbox passed 0:11:54 [283/501/3] test_marshal 0:11:55 [283/501/3] test_marshal passed 0:11:55 [284/501/3] test_math test test_math failed -- Traceback (most recent call last): File "/data/user/0/org.python.testbed/files/python/lib/python3.15/test/test_math.py", line 2739, in test_fma_zero_result self.assertIsNegativeZero(math.fma(x-y, x+y, -z)) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/user/0/org.python.testbed/files/python/lib/python3.15/test/test_math.py", line 2844, in assertIsNegativeZero self.assertTrue( ~~~~~~~~~~~~~~~^ value == 0 and math.copysign(1, value) < 0, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ msg="Expected a negative zero, got {!r}".format(value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ AssertionError: False is not true : Expected a negative zero, got 0.0 0:11:59 [284/501/4] test_math failed (1 failure) 0:11:59 [285/501/4] test_math_integer 0:12:02 [285/501/4] test_math_integer passed 0:12:02 [286/501/4] test_math_property 0:12:03 [286/501/4] test_math_property passed 0:12:03 [287/501/4] test_memoryview 0:12:08 [287/501/4] test_memoryview passed 0:12:08 [288/501/4] test_metaclass 0:12:08 [288/501/4] test_metaclass passed 0:12:08 [289/501/4] test_mimetypes 0:12:09 [289/501/4] test_mimetypes passed 0:12:09 [290/501/4] test_minidom 0:12:10 [290/501/4] test_minidom passed 0:12:10 [291/501/4] test_mmap 0:12:11 [291/501/4] test_mmap passed 0:12:11 [292/501/4] test_module 0:12:13 [292/501/4] test_module passed 0:12:13 [293/501/4] test_modulefinder 0:12:15 [293/501/4] test_modulefinder passed 0:12:15 [294/501/4] test_monitoring 0:12:16 [294/501/4] test_monitoring passed 0:12:16 [295/501/4] test_msvcrt test_msvcrt skipped -- windows related tests 0:12:17 [295/501/4] test_msvcrt skipped 0:12:17 [296/501/4] test_multibytecodec 0:12:18 [296/501/4] test_multibytecodec passed 0:12:18 [297/501/4] test_multiprocessing_main_handling test_multiprocessing_main_handling skipped -- No module named '_multiprocessing' 0:12:18 [297/501/4] test_multiprocessing_main_handling skipped 0:12:18 [298/501/4] test_named_expressions 0:12:19 [298/501/4] test_named_expressions passed 0:12:19 [299/501/4] test_netrc 0:12:20 [299/501/4] test_netrc passed 0:12:20 [300/501/4] test_ntpath 0:12:21 [300/501/4] test_ntpath passed 0:12:21 [301/501/4] test_nturl2path 0:12:21 [301/501/4] test_nturl2path passed 0:12:21 [302/501/4] test_numeric_tower 0:12:23 [302/501/4] test_numeric_tower passed 0:12:23 [303/501/4] test_opcache 0:12:28 [303/501/4] test_opcache passed 0:12:28 [304/501/4] test_opcodes 0:12:29 [304/501/4] test_opcodes passed 0:12:29 [305/501/4] test_openpty 0:12:30 [305/501/4] test_openpty passed 0:12:30 [306/501/4] test_operator 0:12:31 [306/501/4] test_operator passed 0:12:31 [307/501/4] test_optimizer 0:12:31 [307/501/4] test_optimizer passed 0:12:31 [308/501/4] test_optparse test_optparse skipped -- test module requires subprocess 0:12:32 [308/501/4] test_optparse skipped 0:12:32 [309/501/4] test_ordered_dict 0:12:40 [309/501/4] test_ordered_dict passed 0:12:40 [310/501/4] test_osx_env 0:12:41 [310/501/4] test_osx_env passed 0:12:41 [311/501/4] test_pathlib 0:12:46 [311/501/4] test_pathlib passed 0:12:46 [312/501/4] test_patma 0:12:47 [312/501/4] test_patma passed 0:12:47 [313/501/4] test_pdb 0:13:02 [313/501/4] test_pdb passed 0:13:02 [314/501/4] test_peepholer 0:13:03 [314/501/4] test_peepholer passed 0:13:03 [315/501/4] test_peg_generator test_peg_generator skipped -- Use of the 'cpu' resource not enabled 0:13:04 [315/501/4] test_peg_generator skipped (resource denied) 0:13:04 [316/501/4] test_pep646_syntax 0:13:04 [316/501/4] test_pep646_syntax passed 0:13:04 [317/501/4] test_perf_profiler test_perf_profiler skipped -- test module requires subprocess 0:13:05 [317/501/4] test_perf_profiler skipped 0:13:05 [318/501/4] test_perfmaps test_perfmaps skipped -- perf trampoline profiling not supported 0:13:05 [318/501/4] test_perfmaps skipped 0:13:05 [319/501/4] test_pickle 0:13:21 [319/501/4] test_pickle passed 0:13:21 [320/501/4] test_picklebuffer 0:13:22 [320/501/4] test_picklebuffer passed 0:13:22 [321/501/4] test_pickletools 0:13:24 [321/501/4] test_pickletools passed 0:13:24 [322/501/4] test_pkg 0:13:25 [322/501/4] test_pkg passed 0:13:25 [323/501/4] test_pkgutil 0:13:26 [323/501/4] test_pkgutil passed 0:13:26 [324/501/4] test_platform 0:13:27 [324/501/4] test_platform passed 0:13:27 [325/501/4] test_plistlib 0:13:28 [325/501/4] test_plistlib passed 0:13:28 [326/501/4] test_poll 0:13:30 [326/501/4] test_poll passed 0:13:30 [327/501/4] test_popen 0:13:31 [327/501/4] test_popen passed 0:13:31 [328/501/4] test_poplib 0:13:41 [328/501/4] test_poplib passed 0:13:41 [329/501/4] test_positional_only_arg 0:13:42 [329/501/4] test_positional_only_arg passed 0:13:42 [330/501/4] test_posixpath 0:13:42 [330/501/4] test_posixpath passed 0:13:42 [331/501/4] test_pow 0:13:45 [331/501/4] test_pow passed 0:13:45 [332/501/4] test_pprint 0:13:46 [332/501/4] test_pprint passed 0:13:46 [333/501/4] test_print 0:13:48 [333/501/4] test_print passed 0:13:48 [334/501/4] test_profile 0:13:48 [334/501/4] test_profile passed 0:13:48 [335/501/4] test_profiling 0:13:54 [335/501/4] test_profiling passed 0:13:54 [336/501/4] test_property 0:13:55 [336/501/4] test_property passed 0:13:55 [337/501/4] test_pstats 0:13:56 [337/501/4] test_pstats passed 0:13:56 [338/501/4] test_pty test_pty skipped -- pty is not available on this platform 0:13:56 [338/501/4] test_pty skipped 0:13:56 [339/501/4] test_pulldom 0:13:57 [339/501/4] test_pulldom passed 0:13:57 [340/501/4] test_pwd 0:13:58 [340/501/4] test_pwd passed 0:13:58 [341/501/4] test_py_compile 0:13:59 [341/501/4] test_py_compile passed 0:13:59 [342/501/4] test_pyclbr 0:14:02 [342/501/4] test_pyclbr passed 0:14:02 [343/501/4] test_pyexpat 0:14:03 [343/501/4] test_pyexpat passed 0:14:03 [344/501/4] test_pyrepl 0:14:09 [344/501/4] test_pyrepl passed 0:14:09 [345/501/4] test_pystats 0:14:09 [345/501/4] test_pystats passed 0:14:09 [346/501/4] test_queue 0:14:38 [346/501/4] test_queue passed 0:14:38 [347/501/4] test_quopri 0:14:39 [347/501/4] test_quopri passed 0:14:39 [348/501/4] test_raise 0:14:40 [348/501/4] test_raise passed 0:14:40 [349/501/4] test_random 0:14:45 [349/501/4] test_random passed 0:14:45 [350/501/4] test_range 0:14:47 [350/501/4] test_range passed 0:14:47 [351/501/4] test_re 0:14:49 [351/501/4] test_re passed 0:14:49 [352/501/4] test_readline test_readline skipped -- No module named 'readline' 0:14:50 [352/501/4] test_readline skipped 0:14:50 [353/501/4] test_regrtest test_regrtest skipped -- test module requires subprocess 0:14:50 [353/501/4] test_regrtest skipped 0:14:50 [354/501/4] test_remote_pdb test 0:14:51 [354/501/4] test_remote_pdb passed 0:14:51 [355/501/4] test_repl test_repl skipped -- test module requires subprocess 0:14:52 [355/501/4] test_repl skipped 0:14:52 [356/501/4] test_reprlib 0:14:53 [356/501/4] test_reprlib passed 0:14:53 [357/501/4] test_resource 0:14:54 [357/501/4] test_resource passed 0:14:54 [358/501/4] test_richcmp 0:14:55 [358/501/4] test_richcmp passed 0:14:55 [359/501/4] test_rlcompleter 0:14:56 [359/501/4] test_rlcompleter passed 0:14:56 [360/501/4] test_robotparser 0:14:57 [360/501/4] test_robotparser passed 0:14:57 [361/501/4] test_runpy 0:14:58 [361/501/4] test_runpy passed 0:14:58 [362/501/4] test_samply_profiler test_samply_profiler skipped -- test module requires subprocess 0:14:59 [362/501/4] test_samply_profiler skipped 0:14:59 [363/501/4] test_sax 0:15:00 [363/501/4] test_sax passed 0:15:00 [364/501/4] test_sched 0:15:01 [364/501/4] test_sched passed 0:15:01 [365/501/4] test_scope 0:15:03 [365/501/4] test_scope passed 0:15:03 [366/501/4] test_script_helper 0:15:04 [366/501/4] test_script_helper passed 0:15:04 [367/501/4] test_secrets 0:15:05 [367/501/4] test_secrets passed 0:15:05 [368/501/4] test_select 0:15:08 [368/501/4] test_select passed 0:15:08 [369/501/4] test_selectors 0:15:24 [369/501/4] test_selectors passed 0:15:24 [370/501/4] test_set 0:15:33 [370/501/4] test_set passed 0:15:33 [371/501/4] test_setcomps 0:15:34 [371/501/4] test_setcomps passed 0:15:34 [372/501/4] test_shelve 0:15:44 [372/501/4] test_shelve passed 0:15:44 [373/501/4] test_shlex 0:15:45 [373/501/4] test_shlex passed 0:15:45 [374/501/4] test_shutil 0:15:47 [374/501/4] test_shutil passed 0:15:47 [375/501/4] test_signal 0:15:53 [375/501/4] test_signal passed 0:15:53 [376/501/4] test_site 0:15:54 [376/501/4] test_site passed 0:15:54 [377/501/4] test_slice 0:15:55 [377/501/4] test_slice passed 0:15:55 [378/501/4] test_smtplib 0:15:58 [378/501/4] test_smtplib passed 0:15:58 [379/501/4] test_smtpnet test_smtpnet skipped -- Use of the 'network' resource not enabled 0:15:59 [379/501/4] test_smtpnet skipped (resource denied) 0:15:59 [380/501/4] test_socket 0:19:00 [380/501/4] test_socket passed in 3 min 0:19:00 [381/501/4] test_socketserver test_socketserver skipped -- Use of the 'network' resource not enabled 0:19:00 [381/501/4] test_socketserver skipped (resource denied) 0:19:00 [382/501/4] test_sort 0:19:01 [382/501/4] test_sort passed 0:19:01 [383/501/4] test_source_encoding 0:19:02 [383/501/4] test_source_encoding passed 0:19:02 [384/501/4] test_sqlite3 0:19:06 [384/501/4] test_sqlite3 passed 0:19:06 [385/501/4] test_ssl 0:19:36 [385/501/4] test_ssl passed in 30.1 sec 0:19:36 [386/501/4] test_stable_abi_ctypes 0:19:37 [386/501/4] test_stable_abi_ctypes passed 0:19:37 [387/501/4] test_startfile test_startfile skipped -- object <module 'os' (frozen)> has no attribute 'startfile' 0:19:37 [387/501/4] test_startfile skipped 0:19:37 [388/501/4] test_stat 0:19:38 [388/501/4] test_stat passed 0:19:38 [389/501/4] test_statistics 0:19:45 [389/501/4] test_statistics passed 0:19:45 [390/501/4] test_str 0:19:52 [390/501/4] test_str passed 0:19:52 [391/501/4] test_strftime 0:19:53 [391/501/4] test_strftime passed 0:19:53 [392/501/4] test_string 0:19:54 [392/501/4] test_string passed 0:19:54 [393/501/4] test_string_literals 0:19:55 [393/501/4] test_string_literals passed 0:19:55 [394/501/4] test_stringprep 0:19:56 [394/501/4] test_stringprep passed 0:19:56 [395/501/4] test_strptime 0:19:57 [395/501/4] test_strptime passed 0:19:57 [396/501/4] test_strtod 0:20:00 [396/501/4] test_strtod passed 0:20:00 [397/501/4] test_struct 0:20:02 [397/501/4] test_struct passed 0:20:02 [398/501/4] test_structseq 0:20:03 [398/501/4] test_structseq passed 0:20:03 [399/501/4] test_subclassinit 0:20:04 [399/501/4] test_subclassinit passed 0:20:04 [400/501/4] test_subprocess test_subprocess skipped -- test module requires subprocess 0:20:04 [400/501/4] test_subprocess skipped 0:20:04 [401/501/4] test_sundry 0:20:05 [401/501/4] test_sundry passed 0:20:05 [402/501/4] test_super 0:20:06 [402/501/4] test_super passed 0:20:06 [403/501/4] test_support 0:20:08 [403/501/4] test_support passed 0:20:08 [404/501/4] test_symtable 0:20:09 [404/501/4] test_symtable passed 0:20:09 [405/501/4] test_syntax 0:20:10 [405/501/4] test_syntax passed 0:20:10 [406/501/4] test_sys 0:20:12 [406/501/4] test_sys passed 0:20:12 [407/501/4] test_sys_setprofile 0:20:13 [407/501/4] test_sys_setprofile passed 0:20:13 [408/501/4] test_sys_settrace 0:20:16 [408/501/4] test_sys_settrace passed 0:20:16 [409/501/4] test_sysconfig test test_sysconfig failed -- multiple errors occurred; run in verbose mode for details 0:20:17 [409/501/5] test_sysconfig failed (3 errors) 0:20:17 [410/501/5] test_syslog 0:20:19 [410/501/5] test_syslog passed 0:20:19 [411/501/5] test_tabnanny 0:20:20 [411/501/5] test_tabnanny passed 0:20:20 [412/501/5] test_tarfile 0:20:46 [412/501/5] test_tarfile passed 0:20:46 [413/501/5] test_tcl test_tcl skipped -- No module named '_tkinter' 0:20:47 [413/501/5] test_tcl skipped 0:20:47 [414/501/5] test_tempfile 0:20:49 [414/501/5] test_tempfile passed 0:20:49 [415/501/5] test_termios test test_termios failed -- Traceback (most recent call last): File "/data/user/0/org.python.testbed/files/python/lib/python3.15/test/test_termios.py", line 64, in test_tcsetattr termios.tcsetattr(self.fd, termios.TCSAFLUSH, attrs) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ termios.error: (13, 'Permission denied') 0:20:50 [415/501/6] test_termios failed (1 error) 0:20:50 [416/501/6] test_textwrap 0:20:51 [416/501/6] test_textwrap passed 0:20:51 [417/501/6] test_thread 0:21:01 [417/501/6] test_thread passed 0:21:01 [418/501/6] test_thread_local_bytecode 0:21:01 [418/501/6] test_thread_local_bytecode passed 0:21:01 [419/501/6] test_threadedtempfile 0:21:02 [419/501/6] test_threadedtempfile passed 0:21:02 [420/501/6] test_threading 0:21:35 [420/501/6] test_threading passed in 32.5 sec 0:21:35 [421/501/6] test_threading_local 0:21:41 [421/501/6] test_threading_local passed 0:21:41 [422/501/6] test_threadsignals 0:21:48 [422/501/6] test_threadsignals passed 0:21:48 [423/501/6] test_time 0:21:52 [423/501/6] test_time passed 0:21:52 [424/501/6] test_timeit 0:21:53 [424/501/6] test_timeit passed 0:21:53 [425/501/6] test_timeout 0:21:54 [425/501/6] test_timeout passed 0:21:54 [426/501/6] test_tkinter test_tkinter skipped -- No module named '_tkinter' 0:21:55 [426/501/6] test_tkinter skipped 0:21:55 [427/501/6] test_tokenize 0:21:57 [427/501/6] test_tokenize passed 0:21:57 [428/501/6] test_tomllib 0:21:58 [428/501/6] test_tomllib passed 0:21:58 [429/501/6] test_tools test_tools skipped -- test module requires subprocess 0:21:58 [429/501/6] test_tools skipped 0:21:58 [430/501/6] test_trace 0:22:01 [430/501/6] test_trace passed 0:22:01 [431/501/6] test_traceback 0:22:04 [431/501/6] test_traceback passed 0:22:04 [432/501/6] test_tracemalloc 0:22:05 [432/501/6] test_tracemalloc passed 0:22:05 [433/501/6] test_tstring 0:22:06 [433/501/6] test_tstring passed 0:22:06 [434/501/6] test_ttk test_ttk skipped -- No module named '_tkinter' 0:22:07 [434/501/6] test_ttk skipped 0:22:07 [435/501/6] test_ttk_textonly test_ttk_textonly skipped -- No module named '_tkinter' 0:22:07 [435/501/6] test_ttk_textonly skipped 0:22:07 [436/501/6] test_tty test test_tty failed -- multiple errors occurred; run in verbose mode for details 0:22:08 [436/501/7] test_tty failed (6 errors) 0:22:08 [437/501/7] test_tuple 0:22:28 [437/501/7] test_tuple passed 0:22:28 [438/501/7] test_turtle test_turtle skipped -- No module named '_tkinter' 0:22:29 [438/501/7] test_turtle skipped 0:22:29 [439/501/7] test_type_aliases 0:22:30 [439/501/7] test_type_aliases passed 0:22:30 [440/501/7] test_type_annotations 0:22:31 [440/501/7] test_type_annotations passed 0:22:31 [441/501/7] test_type_cache 0:22:32 [441/501/7] test_type_cache passed 0:22:32 [442/501/7] test_type_comments 0:22:33 [442/501/7] test_type_comments passed 0:22:33 [443/501/7] test_type_params <test string>:2: SyntaxWarning: invalid decimal literal 0:22:34 [443/501/7] test_type_params passed 0:22:34 [444/501/7] test_typechecks 0:22:35 [444/501/7] test_typechecks passed 0:22:35 [445/501/7] test_types 0:22:36 [445/501/7] test_types passed 0:22:36 [446/501/7] test_typing 0:22:38 [446/501/7] test_typing passed 0:22:38 [447/501/7] test_ucn 0:22:39 [447/501/7] test_ucn passed 0:22:39 [448/501/7] test_unary 0:22:40 [448/501/7] test_unary passed 0:22:40 [449/501/7] test_unicode_file 0:22:41 [449/501/7] test_unicode_file passed 0:22:41 [450/501/7] test_unicode_file_functions 0:22:42 [450/501/7] test_unicode_file_functions passed 0:22:42 [451/501/7] test_unicode_identifiers 0:22:43 [451/501/7] test_unicode_identifiers passed 0:22:43 [452/501/7] test_unicodedata 0:22:49 [452/501/7] test_unicodedata passed 0:22:49 [453/501/7] test_unittest 0:23:10 [453/501/7] test_unittest passed 0:23:10 [454/501/7] test_unpack 0:23:11 [454/501/7] test_unpack passed 0:23:11 [455/501/7] test_unpack_ex 0:23:12 [455/501/7] test_unpack_ex passed 0:23:12 [456/501/7] test_unparse 0:23:16 [456/501/7] test_unparse passed 0:23:16 [457/501/7] test_urllib 0:23:17 [457/501/7] test_urllib passed 0:23:17 [458/501/7] test_urllib2 0:23:18 [458/501/7] test_urllib2 passed 0:23:18 [459/501/7] test_urllib2_localnet 0:23:22 [459/501/7] test_urllib2_localnet passed 0:23:22 [460/501/7] test_urllib2net test_urllib2net skipped -- Use of the 'network' resource not enabled 0:23:23 [460/501/7] test_urllib2net skipped (resource denied) 0:23:23 [461/501/7] test_urllib_response 0:23:24 [461/501/7] test_urllib_response passed 0:23:24 [462/501/7] test_urllibnet test_urllibnet skipped -- Use of the 'network' resource not enabled 0:23:24 [462/501/7] test_urllibnet skipped (resource denied) 0:23:24 [463/501/7] test_urlparse 0:23:26 [463/501/7] test_urlparse passed 0:23:26 [464/501/7] test_userdict 0:23:28 [464/501/7] test_userdict passed 0:23:28 [465/501/7] test_userlist 0:23:30 [465/501/7] test_userlist passed 0:23:30 [466/501/7] test_userstring 0:23:36 [466/501/7] test_userstring passed 0:23:36 [467/501/7] test_utf8_mode 0:23:37 [467/501/7] test_utf8_mode passed 0:23:37 [468/501/7] test_utf8source 0:23:38 [468/501/7] test_utf8source passed 0:23:38 [469/501/7] test_uuid 0:23:40 [469/501/7] test_uuid passed 0:23:40 [470/501/7] test_venv test_venv skipped -- venv is not available on this platform 0:23:41 [470/501/7] test_venv skipped 0:23:41 [471/501/7] test_wait3 test_wait3 skipped -- requires working os.fork() 0:23:41 [471/501/7] test_wait3 skipped 0:23:41 [472/501/7] test_wait4 test_wait4 skipped -- requires working os.fork() 0:23:42 [472/501/7] test_wait4 skipped 0:23:42 [473/501/7] test_warnings 0:23:43 [473/501/7] test_warnings passed 0:23:43 [474/501/7] test_wave 0:23:44 [474/501/7] test_wave passed 0:23:44 [475/501/7] test_weakref 0:24:59 [475/501/7] test_weakref passed in 1 min 14 sec 0:24:59 [476/501/7] test_weakset 0:25:02 [476/501/7] test_weakset passed 0:25:02 [477/501/7] test_webbrowser 0:25:03 [477/501/7] test_webbrowser passed 0:25:03 [478/501/7] test_winapi test_winapi skipped -- No module named '_winapi' 0:25:04 [478/501/7] test_winapi skipped 0:25:04 [479/501/7] test_winconsoleio test_winconsoleio skipped -- test only relevant on win32 0:25:04 [479/501/7] test_winconsoleio skipped 0:25:04 [480/501/7] test_winreg test_winreg skipped -- No module named 'winreg' 0:25:05 [480/501/7] test_winreg skipped 0:25:05 [481/501/7] test_winsound test_winsound skipped -- Use of the 'audio' resource not enabled 0:25:06 [481/501/7] test_winsound skipped (resource denied) 0:25:06 [482/501/7] test_with 0:25:07 [482/501/7] test_with passed 0:25:07 [483/501/7] test_wmi test_wmi skipped -- No module named '_wmi' 0:25:07 [483/501/7] test_wmi skipped 0:25:07 [484/501/7] test_wsgiref 0:25:09 [484/501/7] test_wsgiref passed 0:25:09 [485/501/7] test_xml_dom_minicompat 0:25:10 [485/501/7] test_xml_dom_minicompat passed 0:25:10 [486/501/7] test_xml_dom_xmlbuilder 0:25:11 [486/501/7] test_xml_dom_xmlbuilder passed 0:25:11 [487/501/7] test_xml_etree 0:25:18 [487/501/7] test_xml_etree passed 0:25:18 [488/501/7] test_xml_etree_c 0:25:28 [488/501/7] test_xml_etree_c passed 0:25:28 [489/501/7] test_xmlrpc 0:25:29 [489/501/7] test_xmlrpc passed 0:25:29 [490/501/7] test_xpickle test_xpickle skipped -- Use of the 'xpickle' resource not enabled 0:25:30 [490/501/7] test_xpickle skipped (resource denied) 0:25:30 [491/501/7] test_xxlimited 0:25:31 [491/501/7] test_xxlimited passed 0:25:31 [492/501/7] test_xxtestfuzz 0:25:32 [492/501/7] test_xxtestfuzz passed 0:25:32 [493/501/7] test_yield_from 0:25:33 [493/501/7] test_yield_from passed 0:25:33 [494/501/7] test_zipapp 0:25:35 [494/501/7] test_zipapp passed 0:25:35 [495/501/7] test_zipfile 0:26:40 [495/501/7] test_zipfile passed in 1 min 5 sec 0:26:40 [496/501/7] test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run 0:26:40 [496/501/7] test_zipfile64 skipped (resource denied) 0:26:40 [497/501/7] test_zipimport 0:26:42 [497/501/7] test_zipimport passed 0:26:42 [498/501/7] test_zipimport_support 0:26:43 [498/501/7] test_zipimport_support passed 0:26:43 [499/501/7] test_zlib 0:26:45 [499/501/7] test_zlib passed 0:26:45 [500/501/7] test_zoneinfo 0:26:47 [500/501/7] test_zoneinfo passed 0:26:47 [501/501/7] test_zstd 0:26:50 [501/501/7] test_zstd passed == Tests result: FAILURE == 68 tests skipped: test.test_asyncio.test_subprocess test.test_asyncio.test_windows_events test.test_asyncio.test_windows_utils test.test_gdb.test_backtrace test.test_gdb.test_cfunction test.test_gdb.test_cfunction_full test.test_gdb.test_misc test.test_gdb.test_pretty_print test.test_multiprocessing_fork.test_manager test.test_multiprocessing_fork.test_misc test.test_multiprocessing_fork.test_processes test.test_multiprocessing_fork.test_threads test.test_multiprocessing_forkserver.test_manager test.test_multiprocessing_forkserver.test_misc test.test_multiprocessing_forkserver.test_preload test.test_multiprocessing_forkserver.test_processes test.test_multiprocessing_forkserver.test_threads test.test_multiprocessing_spawn.test_manager test.test_multiprocessing_spawn.test_misc test.test_multiprocessing_spawn.test_processes test.test_multiprocessing_spawn.test_threads test.test_os.test_windows test_apple test_argparse test_asdl_parser test_clinic test_cmd_line test_dbm_gnu test_dbm_ndbm test_devpoll test_dtrace test_embed test_faulthandler test_file_eintr test_fork1 test_frame_pointer_unwind test_free_threading test_generated_cases test_getopt test_grp test_idle test_kqueue test_launcher test_msvcrt test_multiprocessing_main_handling test_optparse test_perf_profiler test_perfmaps test_pty test_readline test_regrtest test_repl test_samply_profiler test_startfile test_subprocess test_tcl test_tkinter test_tools test_ttk test_ttk_textonly test_turtle test_venv test_wait3 test_wait4 test_winapi test_winconsoleio test_winreg test_wmi 9 tests skipped (resource denied): test_curses test_peg_generator test_smtpnet test_socketserver test_urllib2net test_urllibnet test_winsound test_xpickle test_zipfile64 7 tests failed: test.test_asyncio.test_events test_android test_build_details test_math test_sysconfig test_termios test_tty 417 tests OK. Total duration: 26 min 50 sec Total tests: run=43,234 failures=3 skipped=4,024 Total test files: run=492/501 failed=7 skipped=68 resource_denied=9 Result: FAILURE Command "/home/tacokoneko/code/python/testbed/gradlew --console plain connectedDebugAndroidTest '-Pandroid.testInstrumentationRunnerArguments.pythonArgs=["-m", "test"]'" returned exit status 1In light of this new information, what I'm wondering now is, should I proceed one step at a time and keep my current PR unchanged, then follow up with another PR to add these other changes for the codepath of building for 32-bit ARM Android in general using the official CPython for Android build system afterward, or should I combine all the changes that seem to have been necessary so far into a single PR?
- marked Unhandled
armv8lkey insysconfig.get_platformon Android #135542 as a duplicate of this issueon Mar 23, 2026 - pinned this issue
on Mar 23, 2026 - unpinned this issue
on Mar 23, 2026 should I proceed one step at a time and keep my current PR unchanged, then follow up with another PR to add these other changes for the codepath of building for 32-bit ARM Android in general
Yes, please do that. I think Python is unlikely to make 32-bit ARM Android an officially supported platform due to the difficulty of automatically testing it (see PEP 738), but we're happy to accept anything that makes it easier for downstream projects to use it.
- added a commit that references this issue
on Mar 26, 2026 - added a commit that references this issue
on Mar 27, 2026 - added a commit that references this issue
on Mar 28, 2026
Bug report
Bug description:
Unfortunately, this line of code does not work on 32-bit ARM Python 3.13 when it is running on an Android device that has a 32-bit ARM
/systemfolder but a 64-bit ARM kernel.cpython/Lib/sysconfig/__init__.py
Line 703 in 9159287
On 32-bit ARM Python 3.13 when it is running on an Android device that has a 32-bit ARM
/systemfolder but a 64-bit ARM kernel, this command (and any otherpipcommand):unfortunately results in this error:
Note
Manually editing
sysconfig/__init__.pyto look like this:does allow
pip installto work successfully on 32-bit ARM Android running on a 64-bit ARM kernel without any further unique changes additionally being requiredCPython versions tested on:
3.13
Operating systems tested on:
Android
Linked PRs