2016-05-05 11 views
0

erstellen Ich versuche, psendfile-Modul für meinen Code zu verwenden, der auf dem Laptop funktioniert. Aber wenn ich versuche, das selbe für Android unter Verwendung buildozer android debug zu bauen, wirft es folgenden Fehler. Ich habe requirements=pysendfile in meine buildozer.spec Datei aufgenommen.Buildozer und Py4a können nicht pysendfile mit kivy

Failed building wheel for pysendfile 
Running setup.py clean for pysendfile 
Failed to build pysendfile 
Installing collected packages: pysendfile 
Running setup.py install for pysendfile: started 
Running setup.py install for pysendfile: finished with status 'error' 
Complete output from command /home/heman/kivy/mobile/.buildozer/venv/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-EFXqLT/pysendfile/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-GvNKlz-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/heman/kivy/mobile/.buildozer/venv/include/site/python2.7/pysendfile --home=/tmp/tmputyngD: 
running install 
running build 
running build_ext 
building 'sendfile' extension 
creating build 
creating build/temp.linux-x86_64-2.7 
/bin/false -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c sendfilemodule.c -o build/temp.linux-x86_64-2.7/sendfilemodule.o 
error: command '/bin/false' failed with exit status 1 

---------------------------------------- 
Command "/home/heman/kivy/mobile/.buildozer/venv/bin/python2.7 -u -c" 
import setuptools, tokenize;__file__='/tmp/pip-build EFXqLT/pysendfile/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-GvNKlz-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/heman/kivy/mobile/.buildozer/venv/include/site/python2.7/pysendfile --home=/tmp/tmputyngD" failed with error code 1 in /tmp/pip-build-EFXqLT/pysendfile/ 
Command failed: pip install --target=/home/heman/kivy/mobile/.buildozer/applibs pysendfile 

Buildozer failed to execute the last command 
The error might be hidden in the log above this error 
Please read the full log, and search for it before 
raising an issue with buildozer itself. 
In case of a bug report, please add a full log with log_level = 2 

EDIT: Das ist mein Rezept

from pythonforandroid.toolchain import PythonRecipe 


class PysendfileRecipe(PythonRecipe): 
    name='pysendfile' 
    version = '2.0.1' 

    url = 'https://pypi.python.org/packages/source/p/pysendfile/pysendfile-{version}.tar.gz' 
    depends = ['python2'] 
    site_packages_name = 'sendfile' 

recipe = PysendfileRecipe() 

Antwort

0

Dies geschieht, weil pysendfile des Build-Prozess offenbar einig Kompilation beinhaltet aber es hat kein Kompilation Rezept in python-for-Android. Im Moment versucht Python-for-Android, es mit pip zu installieren, aber das scheitert, weil die Umgebung nicht auf Android ausgerichtet ist (stattdessen ist sie so eingerichtet, dass sie fehlschlägt, um das Problem zu beheben).

Die Lösung ist ein Rezept zu python-for-android hinzuzufügen, um die Kompilierung zu tun. Es gibt einige Informationen über diese here.

+0

habe ich ein Rezept für pysendfile und speicherte es auf/python-for-android/pythonforandroid/Rezepte/pysendfile. Das Terminal sagt immer noch, psendendatei habe keine Rezepte. Mache ich etwas falsch? –

+0

Sie haben es in den Ordner python-for-android gelegt, den buildozer benutzt? – inclement

+0

ich habe es hier platziert:/home/heman/python-for-android/pythonforandroid/rezepte/psendfile .Welche Ordner sprichst du? –