IVAN222
Posts: 4
Joined: Tue Sep 18, 2018 5:43 am

При включении Raspberry Pi 3 пайтоновский код автоматический не запускается.

Tue Sep 18, 2018 7:34 am

Всем привет. Теперь по порядку. Делаю автозапуск кода ok.py,
sudo nano /etc/rc.local —- в окне, внизу между fi и exit 0, печатаю
sudo python /home/pi/Documents/Cods_face/ok.py & ,
сохраняю (ctrl+x, потом y, inter)перезагружаю, и не чего не происходит, нажимаю ctrl+alt+f1, и показывает ошибку:
raspberrypi login: [ 16.022978] rc.local[388]: Unable to init server: 00 0000000 000000000000 0: 0 0000000000 00000000 за место нулей идут квадратики.
Если я делаю для автозапуска простой код:

Code: Select all

import picamera 
from time import sleep 
camera=picamera.PiCamera() 
camera.start_preview() 
sleep(10) 
camera.stop_preview()
То он запускается при старте Raspberry Pi 3.
Код который не запускается:

Code: Select all

import numpy as np 
import cv2 
cap = cv2.VideoCapture(0) 
while(True): 
ret, frame = cap.read() 
frame = cv2.flip(frame, -1) 
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
cv2.imshow('frame', frame) 
cv2.imshow('gray', gray) 
if cv2.waitKey(1) & 0xFF == ord('q'): 
break 
cap.release() 
cv2.destroyAllWindows()
Вчем причина? Спасибо.

vladnt
Posts: 75
Joined: Sun Feb 21, 2016 10:16 am

Re: При включении Raspberry Pi 3 пайтоновский код автоматический не запускается.

Thu Sep 20, 2018 7:33 pm

Скорее всего что-то не успевает загрузиться
лучше автозапуск через systemd делать
https://www.raspberrypi.org/documentati ... systemd.md

peppy.player
Posts: 106
Joined: Mon Mar 07, 2016 6:10 am

Re: При включении Raspberry Pi 3 пайтоновский код автоматический не запускается.

Thu Sep 20, 2018 8:32 pm

Попробуйте поспать перед запуском вашего скрипта - добавьте sleep 10
в файл /etc/rc.local Это должно дать время на загрузку системных
библиотек, которые скорее всего тербуются для cv2.

В цикле обычно тоже рекомендуется вздремнмуть хотя бы несколько
миллисекунд - sleep(0.01) иначе ваш цикл может крутиться с бешеной
скоростью и не даст больше никому ничего сделать. Скорее всего
функция cap.read() блокирует цикл и дремоту можно не включать, но
если в этой функции происходит ошибка, то будет именно то что я
сказал - ваш процесс может легко забить все остальные.


Return to “Русский”