【发布时间】:2022-10-04 22:02:22
【问题描述】:
我已经编写了一个基于 TensorFlow 和 Kivy 的 Python 图像识别应用程序,并希望使用 buildozer 为 Android 设备(aarch64)构建这个应用程序。
构建过程终止,没有任何错误,我可以在我的 Android 上安装 apk。
但是,在启动程序后,它直接终止并出现以下错误:
07-27 09:51:46.735 9458 9530 I python : OSError: dlopen failed: "/data/user/0/org.mikmini.mikminidemonstrator/files/app/_python_bundle/site-packages/tensorflow/core/platform/_cpu_feature_guard.so" is for EM_X86_64 (62) instead of EM_AARCH64 (183)
07-27 09:51:46.735 9458 9530 I python : Python for android ended.
所以,我猜 TensorFlow 包的某些库只在 x86_64 架构上运行,而不是在 aarch64 (arm64-v8) 上运行。
TensorFlow 有一个官方的 aarch64 版本,名为tensorflow-aarch64。
但是,我既不能通过将其指定为 buildozer 构建要求来安装它,也不能手动使用 pip。在任何一种情况下,都只会安装最旧的 tensorflow-aarch64 版本 1.2(只有几 kB 并且无法工作)。
这是我指定要安装的较新版本时 pip 的输出:
ERROR: Could not find a version that satisfies the requirement tensorflow-aarch64==2.9.0 (from versions: 1.2)
我也尝试从.tar.gz文件安装tensorflow-aarch64,但是好像没有setup.py文件,所以pip无法安装。
我尝试使用不同的 Python 版本,并始终确保我使用的是最新版本的 pip。
该应用程序在我运行 x86_64 系统的计算机上运行没有任何问题。
【问题讨论】:
标签: python android tensorflow kivy buildozer