У меня есть сценарий python main.py
, который читает мой последний твит с помощью tweepy.
Я создал сценарий оболочки looplauncher.sh, который вызывает этот сценарий python:
cd /
cd home/pi/LCDinterface
sudo python main.py &
cd /
Если я запустил python main.py
или sh looplauncher.sh
с sudo или без него, моя программа запустится отлично. Я вставил эту строку в cron: using 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)
Запуск вручную скриптов работает нормально. (Хотя у меня действительно есть несколько специальных венгерских букв, например éáőóű
Попробуйте добавить эту строку перед всем остальным в вашем crontab:
PATH=/usr/bin/:/bin