Как установить PyAutoGUI на Fedora 27
Когда я бегу
sudo pip3 install PyAutoGUI
Я получаю следующую ошибку
[root@localhost Projects]# sudo pip install pyautogui
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip install --user` instead.
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-ywXbn7/pyautogui/setup.py", line 6, in <module>
version=__import__('pyautogui').__version__,
File "pyautogui/__init__.py", line 115, in <module>
from . import _pyautogui_x11 as platformModule
File "pyautogui/_pyautogui_x11.py", line 7, in <module>
from Xlib.display import Display
ImportError: No module named Xlib.display
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ywXbn7/pyautogui/
Я следовал другим советам по устранению неполадок, установив Pillow and Display и используя только команду pip.
Я также попытался установить PyAutoGUI путем клонирования пакета из GitHub и установки таким образом, однако возвращается следующее сообщение об ошибке:
[root@localhost Projects]# git clone https://github.com/asweigart/pyautogui
Cloning into 'pyautogui'...
remote: Counting objects: 1079, done.
remote: Total 1079 (delta 0), reused 0 (delta 0), pack-reused 1079
Receiving objects: 100% (1079/1079), 2.03 MiB | 697.00 KiB/s, done.
Resolving deltas: 100% (733/733), done.
[root@localhost Projects]# cd pyautogui
[root@localhost pyautogui]# sudo python3 setup.py install
Traceback (most recent call last):
File "setup.py", line 6, in <module>
version=__import__('pyautogui').__version__,
File "/home/luke/Projects/pyautogui/pyautogui/__init__.py", line 115, in <module>
from . import _pyautogui_x11 as platformModule
File "/home/luke/Projects/pyautogui/pyautogui/_pyautogui_x11.py", line 160, in <module>
_display = Display(os.environ['DISPLAY'])
File "/usr/local/lib/python3.6/site-packages/Xlib/display.py", line 80, in __init__
self.display = _BaseDisplay(display)
File "/usr/local/lib/python3.6/site-packages/Xlib/display.py", line 62, in __init__
display.Display.__init__(*(self, ) + args, **keys)
File "/usr/local/lib/python3.6/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'No protocol specified\n'
Я следую инструкциям из главы 18 "Автоматизация скучного материала", команды которых слегка изменены в соответствии с требованиями рабочей станции Fedora 27.
0 ответов
Этот ответ проверен на Fedora 30.
Зависимости первой установки
sudo dnf install scrot
sudo dnf install python3-tkinter
sudo dnf install python3-devel.x86_64
Затем установите PyAutoGUI с помощью pip (без sudo/root)
pip3 install --user python3-xlib
pip3 install --user pyautogui
Примечание: PyAutoGUI, похоже, требует X, который не установлен по умолчанию в Ferodra 30, но может быть выбран на экране входа в систему. Ищите Xorg.
(Боковое примечание: при установке программного обеспечения рекомендуется использовать sudo, если вы вошли в систему как root, sudo не требуется)