Jupyter Notebook构建Kivy应用遇OSError: source code not available错误求助
解决Kivy应用的OSError及代码错误
代码中的拼写错误
你的代码存在几处拼写/大小写错误,这是导致运行失败的直接原因:
Textinput需改为TextInput(Kivy类名区分大小写)add_weight需改为add_widget(添加组件的正确方法名)
修正后的完整代码
import kivy from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Label from kivy.uix.textinput import TextInput from kivy.uix.button import Button class childApp(GridLayout): def __init__(self,**kwargs): super(childApp,self).__init__() self.cols=2 self.add_widget(Label(text="student name")) self.s_name=TextInput() self.add_widget(self.s_name) self.add_widget(Label(text="student marks")) self.s_marks=TextInput() self.add_widget(self.s_marks) self.add_widget(Label(text="student gender")) self.s_gender=TextInput() self.add_widget(self.s_gender) self.press=Button(text="click me") self.press.bind(on_press=self.click_me) self.add_widget(self.press) def click_me(self, instance): print("Name of student is "+self.s_name.text) print("Mark of student is "+self.s_marks.text) print("Gender of student is "+self.s_gender.text) print("") class parentApp(App): def build(self): return childApp() if __name__=="__main__": parentApp().run()
解决OSError: source code not available错误
该错误多出现于Jupyter Notebook环境中,因为Kivy依赖直接的桌面窗口渲染机制,而Jupyter的内核运行模式与Kivy的需求不兼容。解决方式:
- 优先使用普通Python脚本运行:将代码保存为
.py文件(如student_app.py),在终端/命令行执行python student_app.py,这是Kivy应用的标准运行方式,稳定性最高。 - 若必须在Jupyter中运行:可尝试在代码开头添加以下配置(仍可能存在兼容性问题):
import os os.environ['KIVY_NO_ARGS'] = '1' from kivy.config import Config Config.set('graphics', 'window_state', 'visible')
内容的提问来源于stack exchange,提问作者Victor Ebere
相关产品推荐
相关产品推荐

