如何向 buildozer.spec 文件添加自定义要求

问题描述 投票:0回答:2

我的 buildozer.spec 文件如下所示。

requirements = python3, mysql-connector-python, plyer, android, futures, datetime,kivy, kivymd

我想使用 kivymd 的开发版本,所以我将其更改为如下所示:

requirements = python3, mysql-connector-python, plyer, android, futures, datetime, https://github.com/kivymd/KivyMD/archive/master.zip

但它似乎不起作用。立刻就崩溃了。
我也尝试过这个:

requirements = python3, mysql-connector-python, plyer, android, futures, datetime, kivy, https://github.com/kivymd/KivyMD/archive/master.zip

但我得到了相同的结果。

更改需求的正确方法是什么?
或者也许我可以在本地下载并添加它?

编辑:
我意识到我可以使用选项

requirements.source
所以我这样做了:

requirements = python3, mysql-connector-python, plyer, android, futures, datetime, kivy, kivymd

# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
requirements.source.kivymd = /home/sylwek/buildozer_Test1/KivyMD-master

但是还是不行...

python kivy buildozer kivymd
2个回答
0
投票

我已经解决了这个问题。我使用此配置调试了测试应用程序:

requirements = python3,kivy==2.0.0rc4,kivymd, pillow
并在调试后(我已经测试过它是否有效)。
我已经手动编辑了这个文件夹:
/Documents/my_project/.buildozer/android/platform/build-armeabi-v7a/dists/myapp__armeabi-v7a/_python_bundle/_python_bundle/site-packages/kivymd
包含我想要的版本的文件。再次调试,用简单的脚本测试一下:

from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
import kivymd

class MainApp(MDApp):
    def build(self):
        return MDLabel(text=f"kivymd version: {kivymd.__version__}", halign="center")

MainApp().run()

令人惊讶的是它有效......
我知道这不是最好的解决方案,但它有效;)。


0
投票

如上所述那里,您可以在buildozer.spec需求中使用git url,就像这样:

requirements = python3, git+https://github.com/kivymd/KivyMD.git, Kivy
© www.soinside.com 2019 - 2024. All rights reserved.