Запуск Raspberry Pi 4 с Ubuntu Server 19.10, Python 3.7.5 python3-xlib==0.15
и pyautogui==0.9.50
. Все запускается от имени ubuntu
пользователя по умолчанию.
Я пытаюсь отправить Machine A
команду ssh, чтобы Machine B
запустить программу с графическим интерфейсом и выполнить некоторую обработку. Я получаю некоторые XAUTHORITY
ошибки.
Примечание: я не хочу видеть графический интерфейс на Machine A
мониторе, но приложению, работающему на нем, Machine B
нужен графический интерфейс.
Итак, Machine A
я бегу:
subprocess.Popen(['ssh', 'ubuntu@ip_of_machine_B', 'python3', '/path/to/my_script.py'])
Вкл. Machine B
, my_script.py
выполняет
subprocess.call(['python3', '/path/to/gui_script.py'])
Наконец, gui_script.py
попытки
import os
os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY'] = '/run/user/1000/gdm/Xauthority'
import subprocess
import pyautogui
subprocess.Popen(['the_gui_app'])
# Do stuff with pyautogui and the app.
К сожалению, gui_script.py
выбрасывает следующее
Xlib.error.DisplayConnectionError: Can't connect to display ":0": No protocol specified.
Я также пробовал устанавливать среду в subprocess
вызове my_script.py
через
my_env = os.environ.copy()
my_env['DISPLAY'] = ':0'
my_env['XAUTHORITY'] = '/run/user/1000/gdm/Xauthority'
subprocess.call(['python3', '/path/to/gui_script.py'], env=my_env)
Но и это не удалось.
Я думаю, мне нужно изменить какие-то настройки где-то Machine B
перед запуском рабочего процесса (т. е. однократное редактирование xauth
)? Это закрытая система, поэтому безопасность не является проблемой!