Я пытаюсь автоматизировать некоторые тесты на моем 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 .
Ответы:
Вы можете проверить это без остатка pymouse, запустив python и запустив
который должен напечатать
Похоже, что соответствует
(это
number of extensions:
в полном выводе.)Если последний не появляется, ваш X-сервер не поддерживает его, что очень необычно, поскольку он стал частью основного сервера в июле 2012 года, что также объясняет, почему попытка загрузить модуль не работает; модуль не загружался примерно четыре года назад.
python-xlib
сама получилаrecord
поддержку в версии 0.14 в 2007 году, так что это еще менее вероятно, будет устаревшим ...источник
http://mirrordirector-mb.raspbian.org/raspbian/pool/main/x/xmacro/
Это макро рекордер. Он скомпилирован, но я предполагаю, что он работает так, как он говорит. Я не проверял это, но это кажется намного проще, чем взломать программу на python, в которой вы не можете понять, где она ломается.
источник