私は毎分crontabで.pyを実行しようとしていますが、うまくいきません。
クロンタブ;
MAILTO=""
*/1 * * * * /home/TwitterFollowBot/bot.py
Bot.py
#!/usr/bin/env python
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot()
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot("config.txt")
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot()
my_bot.sync_follows()
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot()
my_bot.auto_rt("@ShoutGamers", count=2200)
道;
/home/TwitterFollowBot/bot.py
Crontabログ。
Traceback (most recent call last):
File "/home/TwitterFollowBot/bot.py", line 5, in <module>
my_bot = TwitterBot()
File "/home/TwitterFollowBot/TwitterFollowBot/__init__.py", line 42, in __init__
self.bot_setup(config_file)
File "/home/TwitterFollowBot/TwitterFollowBot/__init__.py", line 78, in bot_setup
with open(config_file, "r") as in_file:
IOError: [Errno 2] No such file or directory: 'config.txt'
おそらくconfig.txt
ファイルを含むディレクトリから実行しているため、手動で実行すると機能します。 crontabは、crontabを所有するユーザーのホームディレクトリから実行されます。したがって、ユーザーfoo
としてcrontab -e
を実行すると、/home/foo/config.txt
が検索されます。
最も簡単な修正方法は、pythonスクリプトでフルパスを使用することです:
my_bot = TwitterBot("/home/foo/config.txt")
また、スクリプトは奇妙に見えます。なぜそんなに多くの輸入品なのか?ボットを何度も再起動するのはなぜですか?私はそれをテストすることはできませんが、あなたがただ望んでいないと確信しています:
#!/usr/bin/env python
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot("config.txt")
my_bot.sync_follows()
my_bot.auto_rt("@ShoutGamers", count=2200)