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

如何生成适配Android arm64-v8a或跨平台的Python .whl文件?

为Android arm64-v8a编译Python Wheel(以Numpy为例)

先说明:为啥你生成不了-any后缀的wheel

Numpy不是纯Python库,里面有大量C/C++编写的扩展代码,这类库根本没法生成-any跨平台wheel——这种后缀只属于纯Python库,没有编译后的二进制代码。你在Linux/Windows编译出对应平台的wheel是完全正常的,因为编译过程会绑定当前系统的架构和依赖。

方法1:直接在Android设备上用Termux编译(最省心)

  • 装个Termux应用,打开后依次运行这些命令:
    # 更新包列表并升级
    pkg update && pkg upgrade -y
    # 安装编译依赖和Python环境
    pkg install python python-dev clang make libopenblas-dev -y
    # 安装wheel工具
    pip install wheel
    # 从源码编译并生成Numpy的wheel文件
    pip wheel numpy --no-binary :all:
    
  • 执行完成后,当前目录会生成适配Android arm64-v8a架构的Numpy wheel文件。

方法2:在Linux主机上交叉编译(适合批量处理多个库)

  • 安装Android NDK(推荐r25及以上版本),配置环境变量:
    export ANDROID_NDK=/你的NDK存放路径/android-ndk
    export PATH=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
    
  • 创建交叉编译配置文件(命名为android-arm64.cfg),内容如下:
    [build_ext]
    compiler=clang
    compiler_flags=-target aarch64-linux-android24 -fPIC
    linker_flags=-target aarch64-linux-android24
    
  • 下载Numpy源码包并解压,进入源码目录后执行编译命令:
    python setup.py bdist_wheel --config-file android-arm64.cfg
    
  • 注意:Numpy依赖BLAS/LAPACK库,若编译报错,需先交叉编译openblas库,再在编译Numpy时指定其路径,流程相对繁琐,优先推荐Termux方法。

方法3:用cibuildwheel自动化编译(适合批量多版本编译)

  • 安装cibuildwheel工具:
    pip install cibuildwheel
    
  • 在项目根目录创建pyproject.toml文件,添加Android arm64的编译配置:
    [tool.cibuildwheel]
    build = "cp3*-manylinux_aarch64"
    environment = {
      "ANDROID_NDK" = "/你的NDK存放路径/android-ndk",
      "CIBW_ANDROID_API_LEVEL" = "24"
    }
    
  • 执行编译命令:
    cibuildwheel --platform android .
    
  • 该工具会自动处理依赖安装、编译流程,适合需要编译多个库或多个Python版本的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:52:04