我正在尝试构建一个基于Kivy和Scikitslearn的测试Android应用程序。为了构建apk,我使用buildozer。该应用程序的代码是Hello世界的基本示例。在buildozer.spec文件中,我添加了scikit-learn作为外部库:
[app]
title = MyTest
package.name = kivycrash2
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg,kv,atlas
version = 0.1
requirements = kivy, numpy, scikit-learn
orientation = landscape
当我尝试构建apk时,我得到以下错误:
ImportError: Numerical Python (NumPy) is not installed.
scikit-learn requires NumPy >= 1.6.1.
我也尝试过用sklearn代替scikit学习,但没有成功。有可能满足Numpy要求的版本吗?
谢谢。
这里的问题是scikit learn在自己的设置过程中搜索numpy安装,但它不知道在android构建目录中查找numpy是为android架构构建的。我会尝试为scikit-learn创建一个python for android配方(而不是你目前尝试使用pip的方法),它要么对其进行补丁以覆盖numpy检查,要么可能通过向PYTHONPATH添加正确的目录来让它正确检测numpy-但我不确定这是否可行,这取决于它在安装过程中试图导入什么。
还有其他可能性,例如,新的python for android工具链可能有一种方法可以让setup.py自动找到numpy,但这会使numpy的构建时间增加一倍,并且仍然需要您制作一个配方。