Я начал с создания сценария оболочки для запуска двух команд
Код: Выделить всё
source /path/to/.venv/bin/activate
python /path/to/project/run_main.py
- Общий Raspbian из установщика pi (вероятно, 64-битная версия)
- Wayland управляет моим дисплеем?
- Это приложение использует cv2, что кажется немного проблематичным.
- Там, где вы видите строку активируйте .venv, я также пробовал напрямую вызывать интерпретатор либо как /path/to/.venv/bin/python, либо как 'python3'
Если я запущу этот сценарий напрямую, мой приложение запускается, как и предполагалось,
но если я попробую из:
crontab с логикой @reboot, просто безрезультатно
- вероятно, просто пытаюсь запустить до того, как что-то еще будет готово
- но я пробовал со спящим 60, на всякий случай, все равно безрезультатно
- li>
- если есть логи, то я не знаю, где они
- Я не был знаком с этим методом, поэтому использовал gpt, чтобы определить:
Код: Выделить всё
[Unit]
Description=Start Python App on Boot in Foreground
After=graphical-session.target
[Service]
Type=simple
ExecStart=/bin/bash /home/pi/start_app.sh
WorkingDirectory=/home/pi/path/to/project
Environment=DISPLAY=:0
Environment=XDG_RUNTIME_DIR=/run/user/1000
User=pi
Group=pi
Restart=always
RestartSec=5
[Install]
WantedBy=graphical-session.target
- журналы ошибок показывают, что мои модули .venv не установлены (похоже, что он пытается извлечь данные из глобального Python, а не из загруженного .venv,
li>
например, хотя я использую установку pip из .venv, пакеты по-прежнему устанавливаются только в /usr/bin (я думаю, это путь)
< /ul>
с использованием .config/autostart/file.desktopКод: Выделить всё
[Desktop Entry] Type=Application Exec=/path/to/start-script.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=Your Script Comment=Description of your script
- Я тоже не вижу никаких признаков того, что это работает
- Я считаю, что журналы предполагают то же самое, что и служба , модули .venv не найдены
- Мне удалось добиться некоторого прогресса, выполнив --force-reinstall, но когда дело дошло до libcamera, установка picamera2 не имела никакого значения (возможно, мне придется пересобрать из исходного кода и не решаюсь, так как это может помешать моему проекту)
Я даже где-то видел предложение о том, что я могу изменить интерпретатор сценария bash непосредственно на python после shebang и просто запускать приложение Python, как если бы я был в интерпретаторе.
Мне кажется, что я пробовал любые варианты из вышеперечисленного, но все начинает сливаться воедино.
Я открыт для любых предложений или если вы хотите получить прямую обратную связь для любого из них я готов предоставить.
На данный момент я предполагаю, что потенциально у меня есть набор env var, который мешает моим попыткам вызвать Python из этих других контекстов, как насколько я знаю, «python» никоим образом не имеет псевдонимов.
Есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ther-pytho