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

Python脚本运行10分钟后触发pyperclip剪贴板访问拒绝错误求助

问题解决:pyperclip访问剪贴板出现WinError 5拒绝访问

问题原因

这个错误本质是Windows剪贴板被其他进程占用,或者pyperclip的剪贴板资源未正确释放——你之前用pyautogui模拟ctrl+v是通过系统输入事件间接操作剪贴板,和pyperclip直接调用Windows剪贴板API的逻辑不同,后者更容易因资源锁冲突触发权限问题,尤其是长时间运行后。

解决方案

  • 增加重试机制
    临时的剪贴板占用可以通过重试解决,写个包装函数替代原有的pyperclip.paste():

    import pyperclip
    import time
    
    def safe_paste(retries=3, delay=0.5):
        for _ in range(retries):
            try:
                return pyperclip.paste()
            except pyperclip.PyperclipWindowsException:
                time.sleep(delay)
        raise pyperclip.PyperclipWindowsException("多次尝试访问剪贴板失败")
    

    调用时用PyDeepClip1 = safe_paste()即可。

  • 改用更底层的剪贴板操作(pywin32)
    直接调用Windows API能更可靠地管理剪贴板资源,先安装依赖:

    pip install pywin32
    

    然后用以下函数获取剪贴板内容:

    import win32clipboard
    
    def get_clipboard_content():
        win32clipboard.OpenClipboard()
        try:
            # 按需调整数据格式,默认获取文本
            content = win32clipboard.GetClipboardData()
        finally:
            # 确保剪贴板被关闭,避免资源泄漏
            win32clipboard.CloseClipboard()
        return content
    
  • 排查后台占用程序
    关闭剪贴板管理器、杀毒软件的剪贴板监控功能,或者其他可能持续访问剪贴板的后台程序,这类工具长时间运行后可能会锁定剪贴板资源。

  • 降低剪贴板访问频率
    如果脚本频繁调用剪贴板读取,可缓存已获取的内容,避免重复访问——比如连续操作同一份数据时,不用每次都调用paste()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:21:37