如何在Kivy中连接外部库
问题描述:
当您尝试构建应用程序时。应用程序通常收集并且只在没有外部应用程序库时运行。当您尝试连接networkx库时。附录通常收集。但是当你尝试直接在设备上运行。 Pops Saver“Loadind ...”和应用程序下降。你需要改变什么才能使所有的工作。 附件是应用程序代码:如何在Kivy中连接外部库
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.scatter import Scatter
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics.vertex_instructions import *
from kivy.graphics.context_instructions import Color
import networkx as nx
G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(3,4)
G.add_edge(2,3)
class SimpleKivy(App):
def build(self):
b = BoxLayout()
l = Label(text=str(nx.shortest_path(G,1,4)))
textinput1 = TextInput(text=str(nx.shortest_path(G,1,4)))
textinput1.bind(text=l.setter('text'))
f = FloatLayout()
s = Scatter()
s.add_widget(l)
f.add_widget(s)
b.add_widget(f)
b.add_widget(textinput1)
return b
if __name__ == "__main__":
SimpleKivy().run()
答
在你buildozer.spec
文件,行39
添加第三方质量要求。
requirements = kivy,networkx, # or what ever
+0
似乎像纯Python包,所以...你走了! ^^ – KeyWeeUsr
我确定你需要的目标设备或Python仅模块......一个dll –
什么,你应该做的第一件事是'亚行logcat'并检查输出。在那里(并且在kivy直接登录)你会看到'networkx'包缺失。 P4A/Buildozer仅打包默认解释器(+ kivy deps)+显式提供的软件包,因此您需要在.spec文件中声明它们。 – KeyWeeUsr
改变.spek没有区别,应用程序仍然崩溃 – rtyuOp