私はRaspberry PIにUbuntu Mate
を実行しています。私はPythonで1日1回実行したいWebスクラップを書きました。私はsudo crontab -e
を使って、やり方を考えるのが良いと思いました。私が抱えている問題は、cronjob
が私のpythonスクリプトを起動し、pythonスクリプトがインポートエラーをスローして実行されないときです。しかし、Pythonスクリプトをコマンドラインから直接実行すると、問題なく実行されます。Crontabがraspberry piでpythonスクリプトを起動するとインポートエラーが発生する
私は一部の人がシェルスクリプトを使用してpythonスクリプトを起動していることを読んでいたので、私もそれを試しました。コマンドラインから直接シェルスクリプトを実行すると、期待通りに動作しますが、cronjob
で実行した場合は動作しません。
今のところテストのために、私はcronjob
を実行して、何が起こっているか把握します。期待通りに機能したら、実行する時間を私が望むものに近いものに変更します。
私のファイルがどのように見えるかを知るには、以下を確認してください。ご覧のように、実行する必要のあるファイルはすべてprilivagesを実行しています。
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
...
#!/bin/bash
cd /home/elmer/
python web_scraper.py
須藤のcrontab -e
* * * * * sh /home/elmer/start.sh >> /home/elmer/cron.log 2>&1
cron.log start.sh
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