Top.Mail.Ru
Ответы

Помогите с автозапуском кода на python в raspberry pi 4

Сделал проект в котором используется телеграмм, http и pyowm, при запуске по обычному (через ssh или через монитор с клавиатурой и мышью) всё ок, но при автозапуске он начинает открывать библиотеки, а дальше просто не идёт... Думал дело в том что я подключаюсь к openweather сайту, а приложение не видит wifi сети потому что она подключилась потом. Думаю, что стоит вначале запуска добавить подключение к сети wifi вручную, запустил вручную код, всё работает, добавляю в автозапуск, перезапускаю и опять вижу что экран всё равно на том же этапе как и раньше: "Open libraries".
Помогите мне решить проблему, проект показывать уже через пол месяца, а проблему решить не могу уже 2 месяца.
Код в начале (дальше он пищит два раза и экран очищается, а до этого не доходит):

12345678910111213141516171819202122232425
 from time import sleep, time 
from rpi_lcd import LCD 
lcd = LCD(address=0x3f) 
 
lcd.text('  Connect wifi', 1) 
lcd.text("   Domovoy Pi", 2) 
from wifi import connect_to 
connect_to('ssid', 'pass') 
 
lcd.text(" Open libraries", 1) 
from pyowm import OWM 
owm = OWM('f59ea1ec451d9c68b3649ced196f2a85') 
with open('data/city.txt', "r") as file: 
    place = file.read() 
 
from telepot.loop import MessageLoop 
import telepot, datetime as dt, string, secrets, random, threading, RPi.GPIO as GPIO, subprocess as sp, f_dataset as fd, _names_, sys, os 
 
def imprt(): 
    import camera 
thr = threading.Thread(target = imprt, daemon=True) 
thr.start() 
 
from mfrc522 import SimpleMFRC522 
reader = SimpleMFRC522() 
По дате
По рейтингу
Аватар пользователя
Профи

Проблема, с которой вы сталкиваетесь, когда ваш проект не запускается корректно при автозапуске, может быть вызвана различными факторами. В вашем случае, кажется, проблема связана с тем, что ваше приложение не может подключиться к Wi-Fi сети при автоматическом запуске.

Вот несколько шагов, которые могут помочь вам решить эту проблему:

Задержка перед подключением к сети Wi-Fi: Добавьте небольшую задержку перед попыткой подключения к сети Wi-Fi, чтобы дать вашему устройству достаточно времени для завершения загрузки и активации сетевого интерфейса.

Логирование ошибок: Добавьте логирование в ваш код, чтобы вы могли видеть, где именно возникает проблема при автоматическом запуске. Это поможет вам лучше понять, в чем именно причина.

Проверка окружения: Убедитесь, что ваше приложение имеет все необходимые разрешения и доступ к ресурсам при автоматическом запуске. Некоторые операции, такие как работа с GPIO, могут потребовать специальных прав.

Использование абсолютных путей: Убедитесь, что все пути к файлам (например, 'data/city.txt') в вашем коде указаны абсолютно, чтобы избежать проблем с относительными путями при запуске из автозагрузки.

Обработка исключений: Оберните код, который связан с подключением к сети и другими потенциально проблемными операциями, в блоки try-except для перехвата и логирования ошибок.

Проверка переменных окружения: При автозапуске некоторые переменные окружения могут быть не установлены. Убедитесь, что все необходимые переменные окружения (например, пути к библиотекам) установлены или явно указаны в вашем скрипте.

Попробуйте внедрить эти рекомендации в ваш код и запустить его снова при автоматическом запуске. Если проблема остается, обратитесь к журналам или сообщениям об ошибках, чтобы получить более точную информацию о том, что может вызывать застревание на этапе "Open libraries".