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
相关产品推荐
相关产品推荐

