У мене є така проблема: Використовуючи RaspPi 3B під управлінням Raspbian Jessie (версія 4.4.26-v7 +), я хотів би, щоб графічний інтерфейс самостійно написаного python-сценарію виконувався під час запуску.
Я знаю, що це питання було задано як на цьому веб-сайті, так і на інших, але оскільки Raspbian постійно змінюється, і жодне із запропонованих рішень раніше не працювало на мене (див. Нижче), я б хотів його задати ще раз.
З мого розуміння, мені потрібно завантажити XServer і після цього виконати свій скрипт. Це повинно статися замість завантаження всього робочого столу.
Один із способів досягти цього передбачається через файл автозапуску LXDE (як зазначено у цій відповіді ). Я відредагував файл /etc/xdg/lxsession/LXDE-pi/autostart
, а також файл /etc/xdg/lxsession/LXDE/autostart
(колишній перший файл містив чотири рядки замість трьох, як було запропоновано у публікації, на яку посилався) - додав рядки @sudo python /full/path/to/file.py
та @openbox
, але мій Pi все ще завантажується на робочий стіл і не виконує автоматично сценарій взагалі. Анотація: Я спробував лише рядок сценарію та лінію сценарію разом із рядком openbox для одного з файлів та для обох файлів разом.
Інша стратегія включає файл rc.local (як це запропоновано в офіційній документації ). Однак лише додавання python /full/path/to/file.py &
не спрацювало (оскільки досі мій графічний інтерфейс відсутній), а подальше додавання startx
не допомогло, оскільки я, мабуть, не зміг зв’язати старткс із сценарієм python, і тому попередній закрився одразу після його запуску.
Деякі припускають , що (додатково) .xinitrc слід використовувати. Однак це також не спрацювало:
su -c python /full/path/to/file.py pi
І, нарешті, але не в останню чергу, якимось чином це можна зробити за допомогою init.d - але я поки не знайшов деталей щодо цього.
Я дуже вдячний за будь-який натяк на правильний напрямок. Де моя помилка? Як має виглядати мій рядок у rc.local чи .xinitrc? Або відбулися серйозні зміни, пов'язані з переходом на піксель, і я повинен спробувати щось інше?
Деякі додаткові відомості: сценарію потрібні права судо. Він написаний на Python 2.7, GUI використовує Tkinter. GUI заповнює екран повністю, тому фони не мають значення. Сценарій повинен працювати вічно (або доти, доки він не зупиниться введенням користувача через GUI) і не використовує системні сервіси, такі як wifi та Ethernet.
Більше інформації: Все відбувається на місцях.
Уточнення: На даний момент я провів більше 8 годин на пошуках мережі, пробуючи підручники з різних вихідних точок або змішуючи їх разом. Я прийшов до висновку, що або мій скрипт (який прекрасно працює при запуску в пікселі) не працює, якщо запускається в не робочому середовищі (в чому я сумніваюся), або що потрібен новий підручник, оскільки жовтень 2016 року змінюється на Raspbian зробив будь-які старі підручники застарілими. Крім того, завдання полягає не в тому, щоб запустити скрипт або запустити Xserver (або щось подібне) незалежно один від одного, а в тому, щоб зробити обидва пов'язані, щоб сценарій використовував дисплей, створений Xserver.