我有一个 python 脚本main.py
,它使用 tweepy 读取我最新的推文。我创建了一个shell脚本looplauncher.sh,它调用这个python脚本:
cd /
cd home/pi/LCDinterface
sudo python main.py &
cd /
如果我运行python main.py
或sh looplauncher.sh
使用或不使用 sudo,我的程序都运行良好。我将此行粘贴到 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/no 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