main.py
최신 트윗을 읽기 위해 tweepy를 사용하는 Python 스크립트가 있습니다 . 이 Python 스크립트를 호출하는 쉘 스크립트 looplauncher.sh를 만들었습니다.
cd /
cd home/pi/LCDinterface
sudo python main.py &
cd /
python main.py
sudo를 사용 하거나 사용하지 않고 실행하면 sh looplauncher.sh
내 프로그램이 제대로 실행됩니다 . 다음 줄을 cron에 붙여넣었습니다.sudo crontab -e
*/2 * * * * sleep 60 && sudo sh /home/pi/LCDinterface/looplauncher.sh >/home/pi/logs/loopcronlog 2>&1
Python 스크립트는 2분마다 실행됩니다(로그에서 확인 가능). 하지만 내 트윗을 결코 얻을 수 없습니다. main.py를 수동으로 실행하면 항상 내 트윗을 얻을 수 있습니다. 나는 연결 시간을 제공하기 위해 지연을 추가하여 sudo/sudo 없음 조합을 많이 시도했습니다. 그러나 지금까지 아무것도 효과가 없었습니다. 도와주세요? (저는 Raspberry Pi 3에서 이 작업을 수행하고 있습니다.)
cron이 실행되면 다음 오류가 발생합니다.
Traceback (most recent call last):
File "main.py", line 49, in <module>
main()
File "main.py", line 32, in main
tweet = getTweet('RaspProject')
File "/home/pi/LCDinterface/twitterHelper.py", line 20, in getTweet
print (tweet._json['text'])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 32: ordinal not in range(128)
스크립트를 수동으로 실행하면 정상적으로 작동합니다. (나에게는 éáóóű와 같은 특별한 헝가리 문자가 있지만
답변1
crontab의 다른 모든 항목 앞에 다음 줄을 추가해 보세요.
PATH=/usr/bin/:/bin