【发布时间】:2021-05-30 14:23:52
【问题描述】:
我正在尝试这里提供并接受的代码:https://stackoverflow.com/a/55369170/14307622 但我收到了这个错误。任何想法为什么?我是新来的,所以如果我违反了这个问题的一些规则,请告诉我,但如果可能的话,请先提出一些解决问题的方法。
import keyboard
import time
listedSongs = []
currentSong = "idk"
exit = False # make a loop control variable
def alt_k():
i = 1
paused = False
def alt_q():
global exit
exit = True
def alt_s():
if currentSong not in listedSongs:
listedSongs.append(currentSong)
print(listedSongs)
# assign hooks to the keyboard
keyboard.on_press_key("alt+k", alt_k) # on press alt+k, execute alt_k()
keyboard.on_press_key("alt+q", alt_q)
keyboard.on_press_key("alt+s", alt_s)
# main loop
while not exit:
keyboard.wait() # "block" for input (essentially, do nothing until a key is pressed and yield CPU resources to anything else that wants them)
我得到的错误是这样的:
Traceback (most recent call last):
File "D:\AJ\Coding\test.py", line 26, in <module>
keyboard.on_press_key("alt+k", alt_k) # on press alt+k, execute alt_k()
File "C:\Users\AJ\AppData\Local\Programs\Python\Python39\lib\site-packages\keyboard\__init__.py", line 510, in on_press_key
return hook_key(key, lambda e: e.event_type == KEY_UP or callback(e), suppress=suppress)
File "C:\Users\AJ\AppData\Local\Programs\Python\Python39\lib\site-packages\keyboard\__init__.py", line 493, in hook_key
scan_codes = key_to_scan_codes(key)
File "C:\Users\AJ\AppData\Local\Programs\Python\Python39\lib\site-packages\keyboard\__init__.py", line 324, in key_to_scan_codes
raise ValueError('Key {} is not mapped to any known key.'.format(repr(key)), e)
ValueError: ("Key 'alt+k' is not mapped to any known key.", ValueError("Key name 'alt+k' is not mapped to any known key."))
【问题讨论】:
-
我们需要整个回溯才能诊断错误。很明显,您分配给全局变量而不在函数中声明它们(即
alt_q函数需要在顶部写一行global exit)。 -
aalways 将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
-
@thebjorn 我已经按照你的建议更新了我收到的错误,还更新了 alt_q 函数中的“全局退出”,我仍然遇到同样的错误。还有什么建议吗?
-
@furas 感谢您指导我。我已经完成了你的要求。