Raspberry Pi Python(Kivy)使用sudo

时间:2015-08-03 11:31:29

标签: python raspberry-pi kivy sudo

我一直在使用KivyPie OS(为Kivy开发预配置Linux)在Raspberry Pi上编写Kivy图形程序。

出于某种原因,如果以sudo启动它的运行速度非常慢。 通常,运行“python main.py”,程序以每秒约30个周期运行。 但是,如果我执行“sudo python main.py”,它会以每5-10秒1个周期的速度运行。

我需要使用sudo来访问Raspberry的GPIO。 (除非我尝试其他方式来做,我看到人们讨论)。

但是,我很感兴趣,这可能是sudo如此大规模性能下降的原因?是否有可能解决这个问题?

PS:使用和不使用sudo在我的PC(Linux)上运行相同的程序似乎不会导致这样的问题。仅限Raspberry。

2 个答案:

答案 0 :(得分:1)

问题是Kivy正在为root用户使用替代config.ini文件,而不是~/.kivy/config.ini中使用的文件。

在python文件的顶部,您可以添加以下内容以强制它使用 egl_rpi窗口:

import os
os.environ['KIVY_WINDOW'] = 'egl_rpi' 

或者,您可以使用以下命令将ini文件复制到根目录:

sudo cp ~/.kivy/config.ini /root/.kivy/config.ini

答案 1 :(得分:0)

好吧,即使还有一些问题,我也会把这个问题解决。

以下是要点:

  • 由于Kivy无法在“sudo”下加载正确的视频驱动程序,而是使用软件渲染,导致速度减慢。
  • 我还没弄清楚为什么驱动程序没有加载sudo或如何修复它。然而...
  • 用Pyinstaller编译程序后,一切正常。可执行文件可以用sudo启动,GPIO正在运行,Kivy加载了相应的驱动程序,一切都运行得很快。

总结一下,找到了初始问题的原因,还没有找到直接用Python启动程序的修复程序,但是通过使用Pyinstaller编译程序来解决问题。 (仍然不是一种方便的调试方式。)