2016-03-29 25 views
2

Ich versuche eine Test-Android-Anwendung basierend auf Kivy und Scikitlearn zu bauen. Um die apk zu bauen benutze ich buildozer. Der Code der App ist das grundlegende Hello World-Beispiel. Ich füge Scikit-Learn als externe Bibliothek in der buildozer.spec Datei:Kivy Android Scikitlearn

[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 

Wenn ich versuche, die apk zu bauen, ich folgende Fehlermeldung erhalten:

ImportError: Numerical Python (NumPy) is not installed. 
    scikit-learn requires NumPy >= 1.6.1. 

Ich habe auch versucht, sklearn zu setzen statt scikit-lernen ohne Erfolg. Ist es möglich, die von Numpy geforderte Version zu erfüllen?

Vielen Dank.

Antwort

1

Das Problem hier ist, dass scikit-learn für eine numpy Installation während seiner eigenen Einrichtung sucht, aber es nicht in das Android-Build-Verzeichnis suchen, wo numpy für die Android-Architektur gebaut wurde. Ich würde versuchen, ein Python-für-Android-Rezept für scikit-learn (anstatt Ihre aktuelle Methode, die versucht, Pip zu verwenden), die entweder Patches, um die numpy Prüfung überschreiben, oder möglicherweise versucht, lassen Sie es richtig erkennen numpy durch Hinzufügen der rechtes Verzeichnis zum PYTHONPATH - aber ich bin nicht sicher, ob das funktionieren würde, hängt davon ab, was es versucht, während der Installation zu importieren.

Es gibt auch andere Möglichkeiten, z.B. die neue python-for-android toolchain hat möglicherweise eine Möglichkeit, setup.py automatisch numpy finden zu lassen, aber dies verdoppelt die numpy Build-Zeit und erfordert immer noch, dass Sie ein Rezept erstellen.