Author: Malcolm Smith
Chaquopy version 17.1.0
Features
- libpython3.so is now available at runtime, for packages built against the stable ABI (
abi3). (#1380) - The Gradle configuration cache is now supported. (#1443)
- .so files are now made read-only before loading them, in case this becomes compulsory in future versions of Android. (#1444)
- Update CA bundle to certifi 2026.7.22. (#1445)
- Python version 3.15 is now supported. (#1459)
- Fixed some deprecation warnings to prepare for Gradle 10. (#1463)
- Enable several SQLite features including FTS5. (#1466)
- Update runtime Python versions to 3.10.22, 3.11.17, 3.12.15, 3.13.16, 3.14.8 and 3.15.0. (#1467)
Bugfixes
- The path-like objects returned from the importer to
importlibnow implement the completeSimplePathAPI, includingparent. (#1433) - When creating the build environment fails because of the Windows 260-character path limit, error messages are now displayed. (#1439)
- Fixed detection of Python installed from the Microsoft Store on Windows. (#1454)
- Fix a SYS_SECCOMP crash during startup, seen on x86_64 with API levels 27-28. (#1475)
Chaquopy version 17.0.0
Features
- Improved compatibility with various ways of bundling non-Python libraries in a wheel. (#892, #1383)
- Update to pip version 25.3. (#981)
- Improved detection of changes to buildPython. (#991)
- Devices with 16 KB pages are now supported. However, any Android wheels built before October 2024 will still fail to load on 16 KB devices. For best compatibility with these devices, use Python 3.13 or later. (#1171)
- Python version 3.14 is now supported. (#1350)
- Update runtime Python versions to 3.10.19, 3.11.14, 3.12.12, 3.13.9 and 3.14.0. (#1352)
- Update CA bundle to certifi 2025.8.3. (#1353)
- Improved compatibility with various ways of tagging a wheel as Android-specific. (#1374)
- Improved error messages when buildPython is not found. (#1411)
- Added the wildcard
*to extractPackages to extract all packages at startup. (#1424)
Deprecations and Removals
- Pip now uses the
--only-binaryoption, so it will no longer install sdists from PyPI or other indexes. Installing a local path to an sdist or source directory is still possible, as long as it’s a pure-Python package. (#981) - Pip’s
--extra-index-urloption no longer accepts local paths. Use--find-linksinstead, but note that this option expects wheels to be directly under the given directory, not in subdirectories named after each package. (#981) - buildPython must now have the same Python major and minor versions as the app. (#991)
- The default Python version is now 3.10, and Python 3.8 and 3.9 are no longer supported. Some packages are not available yet for Python 3.10 or later. If you need any of those packages, please remain on the previous version of Chaquopy for now. (#1039)
- Android Gradle plugin versions 7.0 to 7.2 are no longer supported. (#1373)
- buildPython commands with multiple arguments must now be passed as multiple strings, not as a single space-separated string. (#1411)
- Pip no longer prefers older Android wheels over newer pure-Python wheels. (#1417)
Bugfixes
Chaquopy version 16.1.0
- The “may have fewer packages available” warning has been removed, since the default Python version no longer has a clear advantage in its package selection. (#1272)
- The
_chaquopystub libraries for OpenSSL and SQLite are now linked in 16 KB mode. (#1324) - Android Gradle plugin version 8.9 is now supported. (#1340)
Chaquopy version 16.0.0
- Update CA bundle to certifi 2024.8.30. (#1169)
- Python version 3.13 is now supported. (#1210, #1212)
- Update runtime Python versions to 3.8.20, 3.9.20, 3.10.15, 3.11.10, 3.12.7 and 3.13.0. (#1211)
- Android Gradle plugin versions 8.6 to 8.7 are now supported. (#1224, #1245)
minSdkmust now be at least API level 24. This still covers 97% of active devices. (#718)- buildPython must now be at least Python 3.8. (#1027)
Chaquopy version 15.0.1
Features
- Kotlin build.gradle.kts files are now supported. (#231)
- A new Gradle DSL has been added, with a top-level
chaquopyblock. Kotlin build.gradle.kts files must use the new DSL; Groovy build.gradle files may use either the new or the old one. (#231) - All Android wheels are now downloaded from https://chaquo.com/pypi-13.1/ – the old pypi-7.0 URL is no longer used. (#808)
os.get_terminal_sizenow returns ENOTTY rather than EPERM, which was causing avc log spam when stdio is redirected. (#886)- Update CA bundle to certifi 2023.11.17. (#893)
- Android Gradle plugin versions 8.1 and 8.2 are now supported. (#908, #1003)
- Python version 3.12 is now supported. (#931, #967)
- Update runtime Python versions to 3.8.18, 3.9.18, 3.10.13, 3.11.6, and 3.12.1. (#932)
- The
importlib.resources.filesAPI is now supported in Python 3.9 and later. (#977) - Update pkg_resources from setuptools version 68.2.2.
Deprecations and Removals
- The 32-bit ABIs
armeabi-v7aandx86will no longer be supported on Python 3.12 and later. (#709) - Android Gradle plugin versions 4.1 and 4.2 are no longer supported. (#787, #840)
Bugfixes
- Fix “AttributeError: “‘AssetFinder’ object has no attribute ‘extract_packages’” when AssetFinder subdirectories are on
sys.path. (#820) - Unsupported
socketfunctions such asif_nametoindexnow throwOSErroras documented, rather thanAttributeError. (#870) - Fix FileNotFoundError when
pkgutil.iter_modulesis called with a nonexistent path. (#917) - ZIP files using BZ2 or LZMA compression are now supported. (#953)
Chaquopy version 14.0.2
Features
sys.stdoutandsys.stderrare now line-buffered by default. (#654, #746, #757)- Add option to redirect native stdout and stderr to Logcat. (#725)
- Update to Python version 3.8.16 and OpenSSL version 1.1.1s. This fixes the Google Play warning “Your app uses a defective version of the OpenSSL library”. (#727)
- Update CA bundle to certifi 2022.12.7. (#747)
- Add
pythonexecutable as a final fallback when searching for buildPython. (#752) - Restore the
extractPackagessetting, for code that requires its modules to exist as separate .py files. (#754) - Android Gradle plugin version 7.4 is now supported. (#756)
- Update to pip version 20.1.
Deprecations and Removals
- buildPython must now be at least Python 3.7. (#713)
Bugfixes
- Enable PEP 517 builds in pip. (#715)
- Show correct error message when buildPython autodetection fails. (#733)
- Fix error when calling
entry_pointswith an unreadable directory onsys.path. (#755) - Fix “Could not find an activated virtualenv” error when
PIP_REQUIRE_VIRTUALENVenvironment variable is set. (#777)
Chaquopy version 13.0.0
Changes:
- Android Gradle plugin version 7.3 is now supported (#663).
- [BACKWARD INCOMPATIBLE]
minSdkVersionmust now be at least API level 21. This still covers 98% of active devices. - Python versions 3.9, 3.10 and 3.11 are now supported (#661).
- Detect changes to files or directories listed in requirements files (#660).
- Projects are no longer required to have a local.properties file, as long as the
ANDROID_HOMEorANDROID_SDK_ROOTenvironment variable is set (#672). - Enable all warnings, including
DeprecationWarning,PendingDeprecationWarning,ImportWarningandResourceWarning. - Update to pkg_resources version 56.2.0.
- Update to SQLite version 3.39.2.
- Update Python 3.9 and later to OpenSSL version 3.0.5.
The following packages have been updated since the previous version:
- scikit-image
Chaquopy is now open-source
I’m delighted to announce that, thanks to support from Anaconda, Chaquopy is now free and open-source. The SDK’s full source code is available on GitHub under the MIT license.
The first open-source version is 12.0.1, which was released today. Apart from removing the license restrictions, it’s identical to version 12.0.0.
If you’re using an older version of Chaquopy, see here for advice.
Chaquopy version 12.0.0
Changes:
- Android Gradle plugin version 7.2 is now supported (#613), and version 4.0 is no longer supported.
- Update to Python version 3.8.13 (see its changelog for details).
- Update CA bundle to certifi 2021.10.8.
- Fix
signal.valid_signalson 32-bit ABIs (#600). - Allow
buildscriptconfiguration to be in a subproject (#615).
The following packages have been added to the repository since the previous version:
- zstandard
And the following packages have been updated:
- cryptography
