如何将自定义要求添加到 buildozer.spec 文件
Posted
技术标签:
【中文标题】如何将自定义要求添加到 buildozer.spec 文件【英文标题】:How can I add custom requirement to buildozer.spec file 【发布时间】:2021-07-17 17:12:22 【问题描述】:我的 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
但是还是不行……
【问题讨论】:
如果您在需求行中放置的内容不能作为配方提供,则将传递给 pip,因此您需要编写任何 pip 期望安装 github 存储库的内容。如果这不起作用,则问题可能出在其他地方,您需要阅读错误以进行调试。 第一次使用 kivymd 导入时出现错误。所以很明显问题就在那里。 Mayby 有什么办法可以做 'github.com/kivymd/KivyMD/archive/master.zip as kivymd' 或类似的事情。 我什至尝试将 kivymd 文件粘贴到我的应用程序文件夹中。但它仍然不起作用,但它仍然给我“ModuleNotFoundError: No module named 'kivymd'” 在导入时出现错误并不意味着问题存在,这意味着发生了许多不同故障中的任何一个以阻止导入。它可能根本无法构建/包含 kivymd。 我该怎么办?当我在我的电脑上安装这个存储库时,它运行良好(pip install github.com/kivymd/KivyMD/archive/master.zip)但这里有问题。 【参考方案1】:我已经解决了这个问题。我使用此配置调试了测试应用程序: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()
令人惊讶的是它起作用了...... 我知道这不是最好的解决方案,但它确实有效;)。
【讨论】:
以上是关于如何将自定义要求添加到 buildozer.spec 文件的主要内容,如果未能解决你的问题,请参考以下文章