Buildozer和Py4a无法使用kivy构建pysendfile

时间:2016-05-05 15:13:32

标签: python kivy buildozer

我正在尝试将pysendfile模块用于我的代码,这在笔记本电脑上运行良好。但是当我尝试使用buildozer android debug为Android构建相同的内容时,它会抛出以下错误。我在requirements=pysendfile文件中添加了buildozer.spec

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

编辑:这是我的食谱

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()

1 个答案:

答案 0 :(得分:0)

这是因为pysendfile的构建过程显然涉及一些编译,但它在python-for-android中没有编译方法。现在python-for-android尝试用pip安装它但是失败了因为环境没有设置为目标android(而是设置为失败以便解决问题)。

解决方案是在python-for-android中添加一个配方来进行编译。有关此here的一些信息。