pip3安装pyautogui时出现1错误代码。

4

我无法安装pyautogui,我已经尝试了一切方法,例如

pip3 install pillow

我还按照pyautogui网站上的步骤进行了操作。以下是安装时我收到的信息。

root@alex-Ai:/# pip3 install pyautogui
Collecting pyautogui
Using cached PyAutoGUI-0.9.36.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/Xlib/xauth.py", line 42, in __init__
    raw = open(filename, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: '/root/.Xauthority'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-mvyjt7lg/pyautogui/setup.py", line 6, in <module>
    version=__import__('pyautogui').__version__,
  File "/tmp/pip-build-mvyjt7lg/pyautogui/pyautogui/__init__.py", line 115, in <module>
    from . import _pyautogui_x11 as platformModule
  File "/tmp/pip-build-mvyjt7lg/pyautogui/pyautogui/_pyautogui_x11.py", line 160, in <module>
    _display = Display(os.environ['DISPLAY'])
  File "/usr/lib/python3/dist-packages/Xlib/display.py", line 80, in __init__
    self.display = _BaseDisplay(display)
  File "/usr/lib/python3/dist-packages/Xlib/display.py", line 62, in __init__
    display.Display.__init__(*(self, ) + args, **keys)
  File "/usr/lib/python3/dist-packages/Xlib/protocol/display.py", line 61, in __init__
    name, host, displayno)
  File "/usr/lib/python3/dist-packages/Xlib/support/connect.py", line 93, in get_auth
    return getattr(mod, modname).get_auth(sock, dname, host, dno)
  File "/usr/lib/python3/dist-packages/Xlib/support/unix_connect.py", line 116, in new_get_auth
    au = xauth.Xauthority()
  File "/usr/lib/python3/dist-packages/Xlib/xauth.py", line 44, in __init__
    raise error.XauthError('~/.Xauthority: %s' % err)
Xlib.error.XauthError: ~/.Xauthority: [Errno 2] No such file or directory: '/root/.Xauthority'

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-mvyjt7lg/pyautogui/

@phd "sudo -H pip3 install pyautogui" 给我返回了以下错误信息:

      alex@aimarket:/home$ sudo -H pip3 install pyautogui
      Collecting pyautogui
      Using cached PyAutoGUI-0.9.36.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-efkrhbdk/pyautogui/setup.py", line 6, in <module>
    version=__import__('pyautogui').__version__,
  File "/tmp/pip-build-efkrhbdk/pyautogui/pyautogui/__init__.py", line 115, in <module>
    from . import _pyautogui_x11 as platformModule
  File "/tmp/pip-build-efkrhbdk/pyautogui/pyautogui/_pyautogui_x11.py", line 7, in <module>
    from Xlib.display import Display
ModuleNotFoundError: No module named 'Xlib'

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-efkrhbdk/pyautogui/

请不要发布错误消息的图片,而是直接发布错误消息。 - MechMK1
4个回答

14

pip install python-xlib

对我来说有效。


2
仍然在2022年有效。 - user21398
对于一个cron任务,我还需要在命令之前加上DISPLAY=:0 - undefined

0
答案是:在Ubuntu 17.10上,pyautogui无法工作,因为pyautogui需要运行X11,所以您必须进入Ubuntu的登录屏幕并单击齿轮图标,在那里您将有两个选项,分别是UbuntuUbuntu on Xorg,单击Ubuntu on Xorg,这将为您提供所需的X11功能。更改后,您可以返回终端并运行pip3 install pyautogui,这对我解决了问题。

0

我使用了pyvirtualdisplaypyautogui,但在尝试将其打包到Docker时遇到了相同的错误。
在创建显示器时,use_xauth = True参数对我有所帮助。

display = Display(visible=False, size=(800, 600), use_xauth=True)

别忘了也要安装xauth

sudo apt-get install xauth

0

PyAutoGUI 在 Unix 上需要 Xlib;模块 xauth 尝试打开 ~/.Xauthority,即 /root/.Xauthority,但失败了。看起来你正在非 root 用户下运行 X 窗口或者根本没有运行。

尝试为运行 X11 的用户安装 PyAutoGUI。如果你确实需要以 root 身份安装,请通过运行 sudo -H pip3 install pyautogui 保留该非 root 用户的 $HOME 环境变量进行安装。

如果仍然无法解决问题,请将 XAUTHORITY 环境变量指向该文件:

XAUTHORITY=/home/alex/.Xauthority pip3 install pyautogui

我更新了问题,但仍然遇到相同的问题。关于你提到的“为运行X11的用户安装”,我还有一个问题,这是什么意思? - Alex Torres
你是用哪个账户启动了X11?例如,我是用本地用户phd启动的;当我需要以root身份运行命令时,我使用sudo或者打开一个新终端(我使用rxvt)并登录为root。 - phd
1
我遇到了类似的问题,它说“17.10默认使用wayland而不是x11;因此,没有.xauthority文件。同样,默认情况下,root用户无法访问您的终端,因此无法运行GUI程序。”不确定那是否可能是问题所在。你建议的"-H"命令应该可以工作,但我得到了“no module named 'Xlib'”错误。希望这解释了我难以理解的x11问题。 - Alex Torres
1
那么 PyAutoGUI 不适合你。据我所知,在 Unix 上它只能与 X11 一起使用。 - phd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接