使用Python for Android部署Django应用启动崩溃:SQLite3后端不可用
解决Django在Python for Android中sqlite3后端不可用的问题
1. 补充sqlite依赖到构建脚本
修改你的build.sh中的--requirements参数,添加sqlite(Python for Android的sqlite组件recipe),确保构建时包含sqlite3模块:
--requirements=python3,hostpython3,django,asgiref,sqlparse,pytz,sqlite
2. 确认Django数据库配置正确性
检查项目settings.py中的数据库配置,确保使用标准的sqlite3配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
3. 调整数据库路径到Android可访问目录
Android应用对文件系统的访问权限有限,将数据库文件路径改为应用私有目录:
import os from pathlib import Path # 获取Android应用私有目录路径 BASE_DIR = Path(os.environ.get('ANDROID_PRIVATE', '.')) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
4. 重新构建APK
清理旧构建缓存后重新执行构建脚本:
p4a clean ./build.sh
额外排查建议
- 切换NDK版本:尝试使用NDK 23.x版本,部分高版本NDK与Python for Android兼容性不佳。
- 使用Django LTS版本:优先选择Django 3.2或4.2等长期支持版本,兼容性更稳定。
内容的提问来源于stack exchange,提问作者addd
相关产品推荐
相关产品推荐

