0

我正在尝试为我的代码使用 pysendfile 模块,该模块在笔记本电脑上运行良好。但是,当我尝试使用 为 android 构建相同的内容时buildozer android debug,它会引发以下错误。我已包含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()
4

1 回答 1

0

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

解决方案是向 python-for-android 添加一个配方来进行编译。这里有一些关于此的信息。

于 2016-05-05T17:09:57.107 回答