@omelsn

Почему crontab не запускает код Python содержащий модули?

Добрый день помогите разобраться почему crontab
* * * * * /home/user/MyProger/venv3.10/bin/python3 /home/user/MyProger/main.py
не запускает код python

import cv2

video_capture = cv2.VideoCapture(0)

if not video_capture.isOpened():
    print("Cannot open url")
    exit()

while True:
    ret, frame = video_capture.read()
    
    if not ret:
        print("Can't receive frame. Exiting...")
        break

    cv2.imshow("Video", frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

video_capture.release()
cv2.destroyAllWindows()


Вот так через консоль все работает source /home/user/MyProger/venv3.10/bin/activate && python3 /home/user/MyProger/main.py, так же писал в crontab. Пробовал кроном запускать myscript.sh

#!/bin/bash

# Переход в директорию проекта
cd /home/user/MyProger

# Активация виртуалки
source /home/user/MyProger/venv3.10/bin/activate

# Выполнить скрипт Python
python3 /home/user/MyProger/main.py

Результат один и тот же лампочка камеры загорается и гаснет,

mail пишет
Return-Path:
X-Original-To: user
Delivered-To: user@user-HP-Laptop-15-bw0xx
Received: by user-HP-Laptop-15-bw0xx (Postfix, from userid 1000)
id 5DD32B4050F; Thu, 16 May 2024 14:54:01 +0600 (+06)
From: root@user-HP-Laptop-15-bw0xx (Cron Daemon)
To: user@user-HP-Laptop-15-bw0xx
Subject: Cron python3 /home/user/MyProger/main.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
Message-Id: <20240516085401.5DD32B4050F@user-HP-Laptop-15-bw0xx>
Date: Thu, 16 May 2024 14:54:01 +0600 (+06)
X-UID: 6
Status: R

Traceback (most recent call last):
File "/home/user/MyProger/main.py", line 1, in
import cv2
ModuleNotFoundError: No module named 'cv2'

cv2 стоит в нужной директории, при манипуляции командами activate и deactivate это видно
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ответы на вопрос 1
@SunTechnik
1. Сам по формулировка вопроса.
Видно, что cron запускает Ваш скрипт. Сам скрипт не отрабатывает из под cron.

2. Переменные окружения в cron не равны переменным окружения в сессии.
Запустите env
Посмотрите какие переменные, относящиеся к python выставлены. Добавьте их определение в начало скрипта...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы