【问题标题】:pip3 install pyautogui, error code 1pip3 安装 pyautogui,错误代码 1
【发布时间】:2018-06-14 16:36:00
【问题描述】:

我无法安装pyautogui 我什么都试过了,比如

pip3 install pillow

还按照网站pyautogui website 上的步骤进行操作。这是我安装时收到的消息。

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/

【问题讨论】:

  • 请不要张贴错误信息的图片。而是发布错误消息

标签: python ubuntu pip pyautogui


【解决方案1】:

pip install python-xlib

为我工作。

【讨论】:

    【解决方案2】:

    PyAutoGUI 在 Unix 上需要 Xlib;模块xauth 试图打开~/.Xauthority/root/.Xauthority 并被关闭。看来您是在非 root 用户下运行 X Window 或根本不运行它。

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

    如果没有任何帮助将 XAUTHORITY env var 指向文件:

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

    【讨论】:

    • 我更新了问题。我仍然遇到同样的问题。我还有一个关于您提到“为运行 x11 的用户安装”的问题,这是什么意思?
    • 你是在什么账号下启动X11的?例如,我在本地用户phd下启动它;当我需要以 root 身份运行命令时,我使用 sudo 或运行新终端(我使用 rxvt)并以 root 身份登录。
    • 所以我可以看到类似的内容,“17.10 默认使用 Wayland,而不是 x11;因此,没有 .xauthority 文件。默认情况下,不允许 root 访问您的终端;因此, 无法运行 GUI 程序。”不确定这是否是问题所在。您建议的“-H”命令应该可以工作,但我收到“没有名为 'Xlib' 的模块”错误。希望这能解释我无法理解的 x11 问题。
    • 那么PyAutoGUI 不适合你。据我所知,在 Unix 上它仅适用于 X11。
    【解决方案3】:

    答案:pyautogui 不适用于 Ubuntu 17.10,因为pyautogui 需要运行 X11,所以你必须进入 Ubuntu 的登录屏幕并点击齿轮图标,在那里您将有两个选项,UbuntuUbuntu on Xorg 点击 Xorg 上的 Ubuntu,这将为您提供所需的 X11 功能。 更改后,您可以返回终端并运行pip3 install pyautogui,这已经为我解决了。

    【讨论】:

      【解决方案4】:

      我使用了 pyvirtualdisplaypyautogui 并在尝试将其打包到 docker 时遇到了同样的错误。
      use_xauth = True 参数在创建显示时帮助了我。

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

      别忘了也安装xauth

      sudo apt-get install xauth
      

      【讨论】:

        猜你喜欢
        • 2016-05-06
        • 1970-01-01
        • 2023-03-17
        • 2015-11-27
        • 2018-12-23
        • 1970-01-01
        • 2017-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多