ошибка pyautogui с DISPLAY, когда скрипт Python вызывается из переполнения стека

Я пытаюсь использовать модуль pyautogui. Все работает как положено, если я запускаю скрипт из консоли. Когда я пытаюсь выполнить скрипт python из php (shell_exec), я получаю следующую ошибку в журнале ошибок apache2:

Traceback (most recent call last):
File "test.py", line 2, in <module>
import pyautogui
File "/usr/local/lib/python3.5/dist-packages/pyautogui/__init__.py", line 115, in <module>
from . import _pyautogui_x11 as platformModule
File "/usr/local/lib/python3.5/dist-packages/pyautogui/_pyautogui_x11.py", line 160, in <module>
_display = Display(os.environ['DISPLAY'])
File "/usr/lib/python3.5/os.py", line 725, in __getitem__
raise KeyError(key) from None
KeyError: 'DISPLAY'

Вот мой Python Scipt:

#! /usr/bin/python3
import pyautogui
import sys

print("Trying to get info")
pyautogui.click(3500,102,1)

А вот и php:

$command = escapeshellcmd('/usr/bin/python3 test.py');
$output = shell_exec($command);
echo $output;

1

Решение

Пытаться xhost + и экспорт DISPLAY переменная в Python вручную чем-то вроде os.environ['DISPLAY']=:1 где: 1 — содержимое вашей переменной DISPLAY.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]