我正在尝试基于Kivy和Scikitlearn构建测试Android应用程序。要构建apk我使用buildozer。应用程序的代码是基本的Hello world示例。在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-learn没有成功。是否有可能满足Numpy所需的版本?
谢谢。
答案 0 :(得分:1)
这里的问题是scikit-learn正在自己的设置中搜索一个numpy安装,但是它并不知道在android构建目录中查看为android体系结构构建了numpy。我尝试为scikit-learn创建一个python-for-android配方(而不是你当前尝试使用pip的方法),要么修补它以覆盖numpy检查,要么可能试图让它正确检测numpy将正确的目录添加到PYTHONPATH - 但我不确定这是否可行,这取决于它在安装过程中尝试导入的内容。
还有其他可能性,例如新的python-for-android工具链可能有一种让setup.py自动找到numpy的方法,但是这会使numpy构建时间加倍,但仍需要你制作一个食谱。