Я начал с создания сценария оболочки для запуска двух команд
Код: Выделить всё
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» никоим образом не имеет псевдонимов.
Обновление:
Вот какое исправление:
Как было предложено (но для модов, почему-то не связанных с программным обеспечением), это была проблема с конфигурацией Python. pip libs установлены глобально, но на них можно ссылаться через символическую ссылку из venv. Параметр в pyconfig.cfg (include-system-site-packages) не позволил мне ссылаться на установленные пакеты Python. изменение этого параметра позволило моему приложению получать данные из глобального Python и venv в одной сборке, из моей конкретной отправной точки (bash при запуске). Если бы только у OpenCV был глобальный пакет, который я мог бы установить, это никогда не было бы проблемой, но насколько я могу судить, он существует только как пакет для venv.
Итак, я пришел сюда с проблемой, которую трудно выделить из-за большого количества работающих частей, сделал все возможное, чтобы объяснить, где я был и что я сделал, и надеялся, что это «сообщество» сможет дать мне несколько идей для решения устранить неполадки. Это не сложная проблема, буквально сценарий оболочки из различных вариантов запуска запуска сценария Python, кроме того, может быть полезно узнать, что может быть причиной конкретной проблемы, с которой я столкнулся. Наверное, я мог бы опустить то, что казалось мне важным, и если бы я точно знал, так это или нет, меня бы здесь, наверное, не было.
Я думаю о шумном офисе. env, где я накопил свой опыт на протяжении многих лет. В те дни, когда я мог наклониться мимо своего стола и попросить другого разработчика предоставить информацию из внешнего источника, я, наверное, предполагал, что (в некотором смысле) именно этим и должен был быть этот сайт. Но давайте будем честными: почти смешно приезжать сюда в надежде на сочувствие или вежливый обмен знаниями. Это место известно своей токсичностью. Когда пользователи приходят сюда с действительно очень простым вопросом, потому что они только начинают, их чуть ли не высмеивают за дверью. Как они смеют не знать, как ориентироваться на этом сайте. Зачем вам изучать технологии или программирование, если вы не знаете, как переменная передается из одной функции в другую, о чем, черт возьми, вы думали? Разве вы не знаете, какой уровень высокомерия необходим, чтобы быть элитой?!
Когда пользователь приходит сюда со сложным вопросом, в котором есть нюансы, который может потребоваться критическое размышление, прежде чем кто-то сможет повысить свою репутацию, он либо останется нетронутым, либо будет забыт забвением по какой-то абсурдной причине (см. предложения).
Я должен предположить, что трафик здесь увеличился вмятина последних лет. Я знаю, что токсичность стала широко известной проблемой, о которой сообщалось. И я, честно говоря, не знаю, как это исправить. Это та же самая проблема, которую мы видим сегодня, обычно отравляя жизнь людей: люди – отстой. В том числе и мне, вероятно, следует лучше контролировать ситуацию, чем тратить время на разглагольствования здесь по поводу поста, который наверняка просто «отбросят». Но я могу признать это и поработать над своими действиями в будущем. Кажется, что проблемы здесь могут не измениться, поскольку своего рода эго, возникающее в результате становления пользователем, которому приходится принимать эти решения, несомненно, раздражает очень многих людей, обладающих этими привилегиями.
А, кроме того, Я не знаю, было ли это частью исправления или нет, но я изменил владельца соответствующих файлов, сценариев, файлов автозапуска и проекта.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ther-pytho