【问题标题】:PyUserInput and Xlib crashingPyUserInput 和 Xlib 崩溃
【发布时间】:2014-01-01 20:18:57
【问题描述】:

我正在使用 PyUserInput python 库,它利用了 python xlib 库。当我使用鼠标移动时,我会随机得到一个错误。转载于此:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pymouse/x11.py", line 68, in move
    if (x, y) != self.position():
  File "/usr/local/lib/python2.7/dist-packages/pymouse/x11.py", line 76, in position
    coord = self.display.screen().root.query_pointer()._data
  File "/usr/lib/pymodules/python2.7/Xlib/xobject/drawable.py", line 569, in query_pointer
    window = self.id)
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/rq.py", line 1428, in __init__
    self.reply()
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/rq.py", line 1440, in reply
    self._display.send_and_recv(request = self._serial)
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/display.py", line 547, in send_and_recv
    gotreq = self.parse_response(request)
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/display.py", line 634, in parse_response
    gotreq = self.parse_request_response(request) or gotreq
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/display.py", line 711, in parse_request_response
    req = self.get_waiting_replyrequest()
  File "/usr/lib/pymodules/python2.7/Xlib/protocol/display.py", line 838, in get_waiting_replyrequest
    raise RuntimeError("Request reply to unknown request.  Can't happen!")
RuntimeError: Request reply to unknown request.  Can't happen!

我能够重现这一点的唯一方法是通过反复试验。它总是发生,但它发生在随机时间。

【问题讨论】:

    标签: python mousemove xlib


    【解决方案1】:

    发生这种情况的原因似乎是由于一些线程问题。查看错误,我意识到错误不在于 PyUserInput 模块,而在于 python-xlib 模块本身。重新定义我的搜索揭示了多线程并发(我的程序使用)的一些可能问题。该线程https://code.google.com/p/pywo/issues/detail?id=12#makechanges 建议导入 Xlib.thread 并且与链接中的用户一样,此后我再也没有看到错误。

    import Xlib.threaded
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多