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

Arch Linux中导入PyAutoGUI时出现显示连接授权错误

PyAutoGUI导入失败:Xlib授权问题解决指南

安装PyAutoGUI后导入模块时触发Xlib连接错误,提示"Authorization required, but no authorization protocol specified"。

系统环境

hostnamectl输出:

Static hostname: archlinux
       Icon name: computer-laptop
         Chassis: laptop 💻
      Machine ID: feee6bbdd3b94cdd9de25a09801e7fb8
         Boot ID: 463321eb08054209ad65b5b793c8727f
Operating System: Arch Linux                      
          Kernel: Linux 6.11.5-arch1-1
    Architecture: x86-64
 Hardware Vendor: HP
  Hardware Model: HP Laptop 15-bs2xx
Firmware Version: F.40
   Firmware Date: Wed 2018-05-16
    Firmware Age: 6y 5month 1w 5d  

错误信息

导入PyAutoGUI时的报错:

>>> import pyautogui
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/curtis/Documents/python_projects/test/venv/lib/python3.12/site-packages/pyautogui/__init__.py", line 246, in <module>
    import mouseinfo
  File "/home/curtis/Documents/python_projects/test/venv/lib/python3.12/site-packages/mouseinfo/__init__.py", line 223, in <module>
    _display = Display(os.environ['DISPLAY'])
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/curtis/Documents/python_projects/test/venv/lib/python3.12/site-packages/Xlib/display.py", line 80, in __init__
    self.display = _BaseDisplay(display)
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/home/curtis/Documents/python_projects/test/venv/lib/python3.12/site-packages/Xlib/display.py", line 62, in __init__
    display.Display.__init__(*(self, ) + args, **keys)
  File "/home/curtis/Documents/python_projects/test/venv/lib/python3.12/site-packages/Xlib/protocol/display.py", line 129, in __init__
    raise error.DisplayConnectionError(self.display_name, r.reason)
Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n'

解决步骤

  • 检查DISPLAY环境变量
    确认当前用户的显示变量是否正确:

    echo $DISPLAY
    

    正常输出应为:0或对应显示编号。

  • 授权当前用户访问X显示
    执行命令允许当前用户连接X服务器:

    xhost +si:localuser:$USER
    

    临时允许所有本地用户访问(不推荐长期使用):

    xhost +local:
    
  • 虚拟环境中传递DISPLAY变量
    激活虚拟环境后手动导出变量:

    export DISPLAY=:0
    
  • 检查X权限文件
    查看~/.Xauthority文件权限:

    ls -l ~/.Xauthority
    

    确保文件属于当前用户且权限为rw-------(600),若异常修复:

    chown $USER:$USER ~/.Xauthority
    chmod 600 ~/.Xauthority
    
  • 重启X会话(极端情况)
    若以上方法无效,重启桌面环境或X服务器,确保权限设置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:35:14