You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS的Python中禁用pynput类的日志警告?

解决pynput在macOS上的辅助功能警告问题

可以通过配置Python的logging模块来隐藏这个警告——因为pynput是用logging输出该警告,而非Python标准的warnings模块,所以直接用warnings.filterwarnings("ignore")无效。

方法一:全局降低pynput日志级别

将pynput相关日志的级别设为ERROR,这样只会显示错误级别的日志,警告会被屏蔽:

import logging
# 把pynput的日志级别设为ERROR,过滤掉警告
logging.getLogger("pynput").setLevel(logging.ERROR)

from pynput import mouse
def on_click(x, y, button, pressed):
    print('{0} at {1}'.format('Pressed' if pressed else 'Released',(x, y)))
    if not pressed:
        # Stop listener
        return False
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

方法二:精确过滤特定警告消息

如果只想屏蔽这一条特定的警告,而保留其他pynput警告,可以自定义日志过滤器:

import logging
from pynput import mouse

# 自定义过滤器,过滤掉指定的警告消息
class IgnoreAccessWarning(logging.Filter):
    def filter(self, record):
        return "此进程不受信任!将其添加到辅助功能客户端后才能进行输入事件监控。" not in record.getMessage()

# 获取pynput的日志器并添加过滤器
logger = logging.getLogger("pynput")
logger.addFilter(IgnoreAccessWarning())

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format('Pressed' if pressed else 'Released',(x, y)))
    if not pressed:
        # Stop listener
        return False
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

注意:虽然用代码可以屏蔽警告,但建议还是在系统设置中给应用/IDE授予辅助功能权限,这样才能保证pynput的功能稳定运行,避免后续可能出现的输入监控失效问题。

内容的提问来源于stack exchange,提问作者ybbb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:40:24