如何在Raspbian上激活Xorg记录模块?


13

我正在尝试在RaspberryPi上自动化一些测试,并且正在使用python的pymouse来执行一些模拟点击。在我的Debian上,它可以正常工作,但是当涉及到Raspbian时,在尝试导入pymouse时,它始终失败并显示以下错误消息:

pi@pi ~/ $ python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from pymouse import PyMouse 
  File "/usr/local/lib/python2.7/dist-packages/pymouse/__init__.py", line 95, in <module>
    from unix import PyMouse, PyMouseEvent
  File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 53, in <module>
    class PyMouseEvent(PyMouseEventMeta):
  File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 54, in PyMouseEvent
    ctx = display2.record_create_context(
  File "/usr/lib/pymodules/python2.7/Xlib/display.py", line 216, in __getattr__
    raise AttributeError(attr)
AttributeError: record_create_context

因此,我进行了一些研究,发现我的问题可能是由于x11安装中缺少记录模块引起的。我已经创建了默认的/etc/X11/xorg.conf并添加了以下几行:

Section "Module"
    Load "record"
EndSection

重新启动后,我找不到任何区别。我想,该模块到目前为止尚未在Raspbian中安装?如何安装?

更新: 我发现其他人在fedora上遇到了类似的问题,并且他记录了他/usr/lib/xorg/modules/extensions/librecord.so失踪的事实。这似乎不是我的问题,因为该文件存在。我还尝试使用它Xorg -configure来创建一个新的xorg.conf,然后重新启动我的Pi。仍然没有运气。:-(

以下是一些可能有用的信息:

pi@pi ~/ $ grep LoadModule /var/log/Xorg.0.log
[169058.900] (II) LoadModule: "fbturbo"
[169058.912] (II) LoadModule: "fbdev"

和:

pi@pi ~/ $ xdpyinfo name of display:    :0.0 version number:    11.0 vendor string:    AT&T Laboratories Cambridge vendor release number:   3332 [...] number of extensions:    7
    BIG-REQUESTS
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    SHAPE
    SYNC
    XC-MISC
    XTEST [...]

这篇文章是从RaspberryPi.stackexchange.com迁移的。


您可能应该将其移至Raspberry Pi Stack Exchange,因为您正在使用Raspian。
SpecialBomb

您是否检查了Debian和Raspbian安装之间的版本是否不同?Xorg / pymouse /其中之一的依赖项可能存在本质上的不同。
Matthias Urlichs '16

Answers:


1

您可以通过启动python并运行来在没有其他pymouse的情况下进行测试

from Xlib.display import Display
display = Display()
display.record_create_context

应该打印

<bound method Display.create_context of <Xlib.display.Display instance at ...>>

看起来像对应

$ xdpyinfo | grep -i record
    RECORD

number of extensions:在完整输出中)。

如果后者未显示,则您的X服务器不支持它,这是非常不寻常的,因为它在20127月成为核心服务器的一部分 -这也解释了为什么尝试加载模块无法正常工作;从大约四年前开始就没有模块要加载。

python-xlib本身record在2007年获得了0.14版的支持,因此过时的可能性甚至更低。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.