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