我一直在使用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)上运行相同的程序似乎不会导致这样的问题.仅限覆盆子.
我正在用Kivy用Python编写一个多平台程序,该程序可在Linux,Windows和Raspberri Pi上运行。
在Raspberry Pi上,我有一个全新安装的Raspbian Jessie Lite,按照Kivy网站上的说明从头开始安装Kivy。
该程序利用键盘和鼠标输入,针对不同的鼠标按钮(包括滚轮旋转)具有特定的操作。在Linux和Windows中没有问题。
在Raspberry Pi上,该程序的每个部分都可以正常运行,除了鼠标输入。首先,光标是不可见的,直到将其添加到Kivy的config.ini文件中:
[modules]
touchring = show_cursor=true
cursor = 1
Run Code Online (Sandbox Code Playgroud)
现在,剩下的问题是,当尝试读取函数button内部的click事件的属性on_touch_down()(以确定被单击的按钮)时,程序崩溃,并说'HIDMotionEvent'没有属性button。此外,鼠标滚轮旋转甚至不会注册为单击事件(在其他系统上会注册)。
它可能取决于提供程序,并且Kivy的配置中的相关行如下:
[input]
mouse = mouse,disable_multitouch
%(name)s = probesysfs,provider=hidinput
Run Code Online (Sandbox Code Playgroud)
如果我用mtdev或替换提供程序mouse,则程序中键盘和鼠标均不起作用。
是否知道Raspberry Pi上的Kivy是否支持检测特定的鼠标按钮(包括滚轮旋转),以及如何实现?
我正在使用Python2.7和Kivy1.9.2-dev创建一个程序,并尝试将它与PyInstaller-3.0打包为不同的系统作为单个可执行文件.
我试图打包它的系统是这些:
在所有这些系统上,当只运行Python时,程序运行良好,未编译.(所以,所有的Kivy依赖都很好).
但是,在使用PyInstaller生成的可执行文件中,只有在64位Linux上生成的可执行文件才能作为一个文件运行.Windows和Raspbian可执行文件大部分都可以工作(稍后我会写它),但在32位Linux上制作的可执行文件仍然无法运行.它在运行时出现以下错误(我尝试在32位和64位Linux上运行它):
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "/media/Data/Programming/Python/installers/PyInstaller-3.0/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 48, in <module>
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/extern/__init__.py", line 60, in load_module
ImportError: The 'six' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.
pyi_rth_pkgres returned -1
Run Code Online (Sandbox Code Playgroud)
这是我很困惑的事情: …
我最近按照Kivy网站上的说明在Raspberry Pi(使用Raspbian系统)上安装了Kivy.
我的意思是测试我写的程序.它在我的Linux Mint计算机上运行良好.然而,在Raspbian上,它崩溃了一个奇怪的错误,链接到Kivy自己的一个函数.
这是终端输出:
$ python main.py
[INFO ] [Logger ] Record log in /home/pi/.kivy/logs/kivy_15-01-10_6.txt
[INFO ] Kivy v1.9.0-dev
[INFO ] [Python ] v2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3]
[INFO ] [Factory ] 173 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_pygame (img_pil, img_ffpyplayer ignored)
[INFO ] [Window ] Provider: egl_rpi
[INFO ] [GL ] OpenGL version <OpenGL ES 2.0>
[INFO ] [GL ] OpenGL vendor <Broadcom>
[INFO ] [GL ] OpenGL renderer <VideoCore …Run Code Online (Sandbox Code Playgroud) kivy ×3
python ×3
raspberry-pi ×3
linux ×1
mouse ×1
mousewheel ×1
pyinstaller ×1
six ×1
sudo ×1