在Ubuntu中导入pyautogui引发KEYERROR:DISPLAY

时间:2018-09-09 11:39:36

标签: python python-2.7

Traceback (most recent call last):
  File "1.py", line 1, in <module>
    import pyautogui
  File "/home/prasoon/.local/lib/python2.7/site-packages/pyautogui/__init__.py", line 115, in <module>
    from . import _pyautogui_x11 as platformModule
  File "/home/prasoon/.local/lib/python2.7/site-packages/pyautogui/_pyautogui_x11.py", line 160, in <module>
    _display = Display(os.environ['DISPLAY'])
  File "/usr/lib/python2.7/UserDict.py", line 40, in __getitem__
    raise KeyError(key)
KeyError: 'DISPLAY'

Python版本-Python 2.7.15rc1

运行“ import pyautogui”时,会抛出此错误

我运行以下命令-

pip install `python3-xlib`

sudo apt-get install scrot

sudo apt-get install python3-tk

sudo apt-get install python3-dev

pip install pyautogui

4 个答案:

答案 0 :(得分:1)

Debian 10. crontab RUN pyautogui脚本运行到GNOME屏幕

import os
os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY']='/run/user/1000/gdm/Xauthority'
import pyautogui
print(pyautogui.position())

答案 1 :(得分:0)

您必须正确设置环境变量DISPLAY。它应该由您的操作系统定义。如果不是,则可以手动定义它。

选项1 -使用以下命令运行python:

DISPLAY=:0 python

选项2 -在Python中设置环境变量

import os

os.environ['DISPLAY'] = ':0'

选项3 -放入您的.bashrc文件

echo "DISPLAY=:0" >> ~/.bashrc
source ~/.bashrc

答案 2 :(得分:0)

似乎您不能使用Display。要解决此问题,请在您的bash终端中:

export DISPLAY=:0

这应该解决它。现在,您可以运行您的pyautogui代码:

import pyautogui

pyautogui.moveTo(100, 200)
pyautogui.moveTo(200, 300)
#And so on...

答案 3 :(得分:-1)

看起来您正在安装python 3库,但是正在运行python 2.7。

要在python 2.7中使用pyautogui,请替换:

  • pip install python3-xlibpip install python-xlib
  • sudo apt-get install python3-tksudo apt-get install python-tk

您可能需要或可能不需要开发工具,但请先尝试进行这些更改,然后让我知道是否可行。