Chaquopy构建应用时安装qiskit包报错exit status 1如何解决
问题现象
- 技术栈:Chaquopy 12.0.0、Gradle 8.0,已切换Python 3.8、Python 3.9作为构建环境验证
- 异常表现:Gradle同步流程可正常完成,numpy、matplotlib等其余Python依赖安装正常,应用基础运行、普通Python函数调用无异常,仅qiskit包在应用构建安装到手机阶段抛出错误:
ERROR: Command errored out with exit status 1: - 初始尝试qiskit版本为0.34.2,当前Gradle配置中指定安装版本为0.36.2,两个版本均触发相同报错
当前使用的Gradle配置片段:
python { buildPython "C:/Program Files/python/python3.8/python.exe" pip { // A requirement specifier, with or without a version number: install "numpy" install "qiskit==0.36.2" install "matplotlib" } }
当前使用的Python测试代码片段:
from qiskit import * from qiskit.tools.visualization import plot_histogram from qiskit.tools.visualization import plot_state_qsphere from qiskit.tools.visualization import plot_bloch_multivector def bv(num): return "test return"
问题原因
qiskit 0.34.2、0.36.2版本的核心依赖包含大量C/C++编写的原生扩展模块,这些模块没有发布适配Chaquopy支持的Android CPU架构(armeabi-v7a、arm64-v8a等)的预编译wheel包,Chaquopy构建阶段无法在Android交叉编译环境下完成这些原生模块的源码编译,最终触发pip安装进程退出码1的错误。该问题和本地PC端安装的Python版本无关,本质是旧版qiskit的依赖没有做移动端环境适配。
解决步骤
- 替换qiskit安装包为纯Python实现的核心版本:将Gradle中qiskit的安装配置改为
install "qiskit-terra==0.21.2",该版本核心逻辑无强制原生编译依赖,可在Chaquopy的Python运行环境中正常加载 - 暂时移除可视化相关依赖引用:测试代码中引入的三个可视化函数依赖matplotlib的桌面端渲染后端,在Android环境下本身存在兼容问题,初期调试核心量子计算逻辑时先注释掉这几行import,减少不必要的依赖拉取,待核心逻辑跑通后再单独适配可视化能力
- 按需调整pip安装参数:如果安装时仍有子依赖报错,可在pip配置块中添加
pipOptions "--no-deps"先安装qiskit核心包,后续再逐个手动安装经过兼容性验证的依赖版本,避免pip自动拉取带原生编译要求的高版本子依赖
调整后的最小验证Python代码:
from qiskit import QuantumCircuit, execute, Aer def bv(num): return "test return"
内容的提问来源于stack exchange,提问作者Rohit Sahu
相关产品推荐
相关产品推荐

