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

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

我正在尝试在 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

答案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 服务器不支持它,这是非常不寻常的,因为它2012年7月成为核心服务器的一部分- 这也解释了为什么尝试加载模块不起作用;从大约四年前开始就没有可以加载的模块了。

python-xlib它本身record在 2007 年的 0.14 版本中得到了支持,所以它过时的可能性更小......

答案2

http://mirrordirector-mb.raspbian.org/raspbian/pool/main/x/xmacro/

这是一个宏记录器。它已编译,但我认为它按照它所说的那样工作。我还没有测试过它,但它似乎比用 python 程序进行黑客攻击要容易得多,而你却无法找出它的问题所在。

相关内容