Ich bin Ubuntu Mate
auf meinem Raspberry PI laufen. Ich habe einen Web-Scrapper in Python geschrieben, den ich einmal am Tag ausführen möchte. Ich dachte, mit sudo crontab -e
wäre ein guter Weg, um zu tun. Das Problem, das ich habe, ist, wenn das cronjob
mein Python-Skript startet, das Python-Skript einen Importfehler auslöst und nicht ausgeführt wird. Wenn ich das Python-Skript jedoch direkt über die Befehlszeile ausfühle, wird es ohne Probleme ausgeführt.Crontab zum Starten von Python Script auf Raspberry Pi verursacht Importfehler
Ich habe gelesen, dass einige Leute ein Shell-Skript verwenden, um sie Python-Skript zu starten, also habe ich das auch versucht. Wieder funktioniert es wie erwartet, wenn ich das Shell-Skript direkt von der Befehlszeile aus ausführe, funktioniert aber nicht, wenn es von cronjob
ausgeführt wird.
Zu Testzwecken habe ich jetzt die cronjob
jede Minute auszuführen, bis ich herausfinden, was los ist. Sobald es wie erwartet funktioniert, ändere ich die Zeit, die es ausführt, etwas näher an das, was ich möchte.
Um Ihnen eine Vorstellung davon zu geben, wie meine Dateien aussehen, sehen Sie unten nach. Wie Sie sehen können, müssen alle Dateien, die ausgeführt werden müssen, Prilivages ausführen.
web_scraper.py
#!/usr/bin/env python
import click
import logging
import os
from datetime import datetime
from bs4 import BeautifulSoup as bs
import re
import urlparse
...
start.sh
#!/bin/bash
cd /home/elmer/
python web_scraper.py
Sudo crontab -e
* * * * * sh /home/elmer/start.sh >> /home/elmer/cron.log 2>&1
cron.log
Traceback (most recent call last):
File "web_scraper.py", line 6, in <module>
import click
ls -lh
(py27)[email protected]:$ ls -lh
total 56K
-rw-rw-r-- 1 elmer elmer 2.9K Mar 17 20:38 cron.log
-rwxrwxrwx 1 elmer elmer 8.2K Mar 16 09:54 web_scraper.py
-rwxrwxrwx 1 elmer elmer 64 Mar 17 20:02 start.sh