You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在安卓端运行Django应用?可使用或不使用Chaquopy打包为APK

方案1:使用Chaquopy部署Django应用

此前出现的运行时异常多为配置遗漏导致,按以下步骤操作即可解决

  • 第一步:创建基础安卓项目,在项目级build.gradle中添加Chaquopy依赖:
plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'com.chaquo.python' version '14.0.2' apply false
}
  • 第二步:在模块级build.gradle中启用Chaquopy,配置Python环境,添加Django依赖:
plugins {
    id 'com.android.application'
    id 'com.chaquo.python'
}

android {
    namespace "com.example.djangoapp"
    compileSdk 33

    defaultConfig {
        applicationId "com.example.djangoapp"
        minSdk 24
        targetSdk 33
        versionCode 1
        versionName "1.0"

        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
        }

        python {
            pip {
                install "django==4.2"
            }
        }
    }
}
  • 第三步:把完整Django项目复制到模块下的src/main/python目录中
  • 第四步:编写安卓启动逻辑,在MainActivity中初始化Python,启动Django服务:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.chaquo.python.Python;
import com.chaquo.python.android.AndroidPlatform;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (!Python.isStarted()) {
            AndroidPlatform.initialize(this);
        }
        Python py = Python.getInstance();
        // 启动Django服务,监听本地8000端口,必须加--noreload避免重载异常
        py.getModule("manage").callAttr("execute_from_command_line", new String[]{"manage.py", "runserver", "127.0.0.1:8000", "--noreload"});
        
        // 后续可直接通过WebView加载本地地址展示应用页面
    }
}
  • 第五步:在AndroidManifest.xml中添加必要权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

方案2:不使用Chaquopy的Termux打包方案

该方案不需要编写安卓原生代码,适配成本更低

  • 第一步:先在Termux环境中完成依赖安装和Django应用测试,执行命令:
pkg update && pkg upgrade
pkg install python python-dev django
# 复制Django项目到Termux目录后测试运行正常
python manage.py runserver 127.0.0.1:8000
  • 第二步:使用termux-create-package工具将整个环境和启动脚本打包为APK:
pkg install termux-create-package
# 编写manifest.json配置文件,指定启动命令为Django服务启动指令
termux-create-package manifest.json
  • 第三步:如果需要实现打开APK直接展示应用页面,可搭配WebView封装工具,将本地服务地址和WebView打包为一体,无需用户手动操作Termux。
    该方案打包出的APK体积比Chaquopy方案大,但无需处理Gradle版本兼容性问题

通用异常排查

  • 端口报错:优先使用1024以上的非特权端口,避开安卓系统权限限制
  • 静态资源加载失败:部署前先执行python manage.py collectstatic,统一打包静态资源到应用可访问目录
  • 数据库报错:SQLite等文件存储路径设置为应用私有目录,不要使用系统公共路径

内容的提问来源于stack exchange,提问作者Ojas_Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:15:06