pythoncom.PumpMessages() 发出警告 "no reference PumpMessages() in pythoncom"

pythoncom.PumpMessages() gives warning "no reference PumpMessages() in pythoncom"

我正在制作键盘记录器,但我看到的每个来源都需要该功能,但它无法正常工作。

我尝试更新库但没有解决问题。 除以下部分外,所有代码均有效。 我不知道以下是什么意思。请帮助我理解。 如果您知道类似的功能,请提供帮助。 所以我才14岁,我经验不够。 C 语言 2 年。和 1 年网络编程。和 1 年 python pro.

obj = pyHook.HookManager()
obj.KeyDown = keypressed
obj.HookKeyboard()
pythoncom.PumpMessages()

这不是 Python 错误消息。除非我弄错了,否则你是 运行 PyCharm,当你将鼠标悬停在突出显示的属性 PumpMessages 上时,你会得到一个 PyCharm 弹出窗口。

这没什么好担心的。这是因为 PyCharm 的分析并不总是知道如何检查 DLL 中的 Python 扩展。正如 PyCharm 本身所说,

This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases.

此检查的一个局限性是动态调度的 DLL 中的函数。

如果您查看文件 pythoncom.py,您会发现它实际上不包含函数 PumpMessages 的定义,只有两行导入 pythoncom3x.dll。函数定义位于该 DLL 中,PyCharm 无法在那里找到它,因为它必须执行代码才能确定查找位置。该消息是误报。

如果这让您感到困扰,请将插入符号放在突出显示上,按 alt-Enter,单击灯泡图标,然后选择 select 禁用未解析引用报告的选项之一,无论是对于函数还是对于整个 pythoncom 模块。否则就忽略它。

要重新打开它,请按 ctrl-alt-S(设置),选择编辑器 |检查 | Python |未解决的引用。

因此,如果您的程序没有按预期运行,请在别处查找原因。这个警告不是问题。