Windows正常运行的Kivy程序在Ubuntu虚拟机报run()缺self参数错误
Kivy程序在Ubuntu环境运行报错:TypeError: run() missing 1 required positional argument: 'self'
在Windows的PyCharm里写的简单Kivy程序运行正常,为生成APK,在虚拟机Ubuntu中按官方文档安装了pip、PyCharm和Kivy,但运行代码时出现TypeError: run() missing 1 required positional argument: 'self'错误,谷歌搜索未找到有效解决办法。
代码及kv文件内容
Python代码
from kivy.app import App from kivy.uix.floatlayout import FloatLayout class Container(FloatLayout): pass class MyApp(App): def build(self): return Container() if __name__=='__main__': MyApp().run()
kv文件内容
<Container>: Button: background_normal: '' background_color: 0.5, 0, 1, .5 size_hint: 0.3, 0.3 pos_hint: {'center_x' : 0.5 , 'center_y':0.5} text:'Push' color: 0,1,0.5,1 on_release: self.text = 'on release'
问题排查及解决步骤
核对Kivy版本
终端执行pip show kivy查看Ubuntu上的Kivy版本,对比Windows环境的版本。如果版本差异较大,安装和Windows一致的版本:pip install kivy==x.x.x # 将x.x.x替换为Windows上的版本号检查PyCharm解释器配置
打开PyCharm的File -> Settings -> Project: [你的项目名] -> Python Interpreter,确认选中的解释器里已安装Kivy,且是你在终端安装的那个Python环境。避免模块导入冲突
检查项目目录下是否存在kivy.py或app.py这类与Kivy内置模块同名的文件,如有则重命名,防止干扰正常模块导入。终端直接运行测试
脱离PyCharm,在项目目录下用终端执行:python main.py # 替换为你的代码文件名如果终端运行正常,说明问题出在PyCharm的环境配置上;如果同样报错,继续排查依赖或版本问题。
重装Kivy及系统依赖
先卸载现有Kivy:pip uninstall kivy -y然后安装Ubuntu系统级依赖:
sudo apt-get update && sudo apt-get install python3-dev python3-pip libgl1-mesa-dev libgles2-mesa-dev python3-setuptools python3-wheel libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libfontconfig1-dev libfreetype6-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev最后重新安装Kivy:
pip install kivy
内容的提问来源于stack exchange,提问作者Dmitriy
相关产品推荐
相关产品推荐

