Python / Kivy:如何为bs4模块及其依赖项创建配方?

时间:2017-10-31 15:06:05

标签: android python kivy

我尝试将bs4模块导入到Android应用程序中。 以下是代码:

import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):
    def build(self):
        try:
            import bs4
            result = "Done..."
        except:
            result = "Failed..."
        return Label(text=result)


MyApp().run()

为了导入它,我复制了bs4的配方文件和必需的库(lxml,libxml2,libxslt),这些文件是在这个网站上写的:

https://github.com/yaki29/python-for-android/commit/c4b8969e3104d39535380bc07cf8c1c8f6dcd75a

我在 .buildozer / android / platform / python-for-android-master / pythonforandroid / recipes 目录中为bs4和它的依赖项创建了新的配方文件夹然后我放了__init__.py根据上述网站将文件发送到这些新文件夹。

我在buildozer.spec文件的要求中添加了这些库。

# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = bs4, lxml, libxml2, libxslt, kivy

在编译失败后,我更改了buildozer.spec文件要求部分,如下所示:

# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = bs4, lxml, kivy

但是,编译再次失败。

所以,我想知道这些食谱文件是否完整。

例如,我举了一个例子,将html5lib导入android应用程序。

还有任何html5lib食谱文件。因此我写了一个包含以下代码的配方文件:

from pythonforandroid.toolchain import Recipe


class html5libRecipe(Recipe):
    version = '0.999999999'
    url = 'https://pypi.python.org/packages/17/ee/99e69cdcefc354e0c18ff2cc60aeeb5bfcc2e33f051bf0cc5526d790c445/html5lib-{version}.tar.gz'
    md5sum = '8578e4e3a341436cb9743a9e4a299239'
    name = 'html5lib'


recipe = html5libRecipe()

这些代码位于__init__.py文件中。这个__init__.py文件位于html5lib文件夹中。我将此文件夹放在 .buildozer / android / platform / python-for-android-master / pythonforandroid / recipes 目录中。然后我改变了要求如下:

# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = html5lib, kivy

最后,我编译了main.py文件。并创建了一个有效的应用程序。

我还观察到配方文件不一样。有些代码比其他代码多。我想这取决于库类型。例如,libxml2和libxlst是C库。因此,它们的配方文件与html5lib完全不同?

希望你理解我的问题。 任何帮助深表感谢。 提前谢谢。

注意:我使用的是Python2.7,操作系统是Ubuntu 17.04。

0 个答案:

没有答案