Запуск скрипта OpenCV при загрузке с RPI - PullRequest
0 голосов
/ 05 февраля 2019

У меня Raspberry Pi 3 работает на Python 3.7.2 с OpenCV 4.0.1.Я пытаюсь запустить скрипт OpenCV при запуске pi, но, похоже, ни один из методов не работает.Каждый раз, когда я пытаюсь запустить скрипт из чего-то вроде .bashrc, он говорит, что его нет в среде cv, даже когда я помещаю 'workon cv' над командой для запуска скрипта.Любая помощь очень ценится, спасибо.

Ответы [ 2 ]

0 голосов
/ 30 июня 2019

Вы можете добавить этот скрипт при автозапуске в папке LEXD-pi.

Перейти к ./home/pi/.config/lxsession/LXDE-pi/

sudo nano autostart

    @lxpanel --profile LXDE
    @pcmanfm --desktop --profile LXDE
    @xscreensaver -no-splash
    @/usr/bin/[python3/python] [your script address]

запустить свой скрипт после запускаxstart

Подробнее об этой теме:

Основная проблема на raspberrypi.stackexchange , ссылка для detial на форумах raspberrypi

0 голосов
/ 05 февраля 2019

Я бы запустил свои файлы python или любые файлы запуска в /etc/rc.local.https://unix.stackexchange.com/questions/49626/purpose-and-typical-usage-of-etc-rc-local может помочь с объяснением.
Также я считаю, что версия python, запускаемая при запуске, не совпадает с версией, которую вы используете при входе в оболочку.При запуске сценария вы просто вызываете из командной строки:

python myscript

, где «myscript» - это тот, который вы хотите выполнить?Я столкнулся с подобной проблемой, вызывая сценарии при загрузке на моем сервере Linux.Обходной путь для меня заключался в том, чтобы найти и вызвать абсолютный путь к версии Python, которую я хотел запустить.

, например: если я использую встроенную версию Python, я имею в / usr / bin / python3 для запусканебольшую программу, которую я создал, я вижу это:

scarter@sb-gateway:~$ /usr/bin/python3 camera_sentry_beta_v2.py
Traceback (most recent call last):
  File "camera_sentry_beta_v2.py", line 3, in <module>
    import cv2
ImportError: No module named 'cv2'
scarter@sb-gateway:~$

, где как будто я называю правильную версию python, где у меня установлены все модули (я использую anaconda)

scarter@sb-gateway:~$ /home/scarter/anaconda3/envs/ne/bin/python read_temp.py

мой скрипт работает.Возможно, что версия python, запущенная при загрузке, не совпадает с версией, запущенной при входе в pi.Это может быть проблема пути.запустите:

echo $PATH

, чтобы получить список путей, которые ваш pi загружает при входе в систему. Можете ли вы выполнить эту команду и предоставить выходные данные, пожалуйста?

Например, это мой путь:

/home/scarter/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Я знаю, что у меня есть версия python в / home / anaconda3 / bin, которая будет запускаться первой.Я также знаю, что у меня есть совершенно другая версия, работающая в / usr / bin, которая не будет иметь те же модули, что и предыдущая установка.В заключение я хотел бы сделать 2 вещи.сначала найдите абсолютный путь к python, который вы хотите запустить, и вызовите его при запуске скрипта во время загрузки.Во-вторых, я бы попытался использовать другое место, чем .bashrc для вызова вашего скрипта, если вы можете.

Кроме того, что касается команды 'workon'.Это говорит о том, что вы создали виртуальную среду для запуска Python. Я отсылаю вас к этому примеру из https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

$ workon
$ mkvirtualenv mynewenv
New python executable in mynewenv/bin/python
Installing setuptools.............................................
..................................................................
..................................................................
done.
(mynewenv)$ workon
mynewenv
(mynewenv)$

Если вы создали среду, как указано выше, например, Python должен вызываться изmynewenv/bin/python

...