如何在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() 
+0

我确定你需要的目标设备或Python仅模块......一个dll –

+1

什么,你应该做的第一件事是'亚行logcat'并检查输出。在那里(并且在kivy直接登录)你会看到'networkx'包缺失。 P4A/Buildozer仅打包默认解释器(+ kivy deps)+显式提供的软件包,因此您需要在.spec文件中声明它们。 – KeyWeeUsr

+0

改变.spek没有区别,应用程序仍然崩溃 – rtyuOp

在你buildozer.spec文件,行39添加第三方质量要求。

requirements = kivy,networkx, # or what ever 
+0

似乎像纯Python包,所以...你走了! ^^ – KeyWeeUsr