Crontab 无法使用 .py 正常运行

Crontab 无法使用 .py 正常运行

我尝试每分钟使用 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'

答案1

手动运行它会起作用,因为您可能从包含该config.txt文件的目录中运行它。您的 crontab 将从其所属 crontab 的用户的主目录运行。因此,如果您crontab -e以用户的身份运行foo,它将查找/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)

相关内容