Cron工作不能一直工作.Python只完成了我一半的脚本



我花了几个小时试图让这个twitter机器人自动工作。

是这样的。首先,我用树莓派作为一个平台来运行我的机器人。

Pi设置为通过ssh工作。

我已经执行了这些命令

sudo pip install TwitterFollowBot
sudo pip install twitter

python 2.7已经安装。然后为我的项目设置dir文件夹

mkdir bot

cd bot 
mkdir newsbot
cd newsbot

我在nano newsbot.py下创建了我的bot,下面是一个例子。

from TwitterFollowBot import TwitterBot
my_bot = TwitterBot()
my_other_bot = TwitterBot("config.txt")
my_bot.sync_follows()
my_bot.auto_fav("news", count=1)

出于测试目的,我只使用了一个命令。

当我输入

时一切正常
python newsbot.py

工作没有问题

但问题是……只有当我在目录内而不是在目录外时才有效。例如这是python newsbot.py我把它变成一个可执行文件,因为我要给这个python脚本分配一个cron作业。但是这会给我一个错误

/usr/bin/python /home/pi/bot/newsbot/newsbot.py

如果我在目录之外,这里是错误消息。比如如果我是cd ~然后输入这行

File "/home/pi/bot/newsbot/newsbot.py", line 6, in <module>
    my_bot = TwitterBot()
  File "/usr/local/lib/python2.7/dist-packages/TwitterFollowBot-v2.0.1-py2.7.egg/TwitterFollowBot/__init__.py", line 42, in __init__
    self.bot_setup(config_file)
  File "/usr/local/lib/python2.7/dist-packages/TwitterFollowBot-v2.0.1-py2.7.egg/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 * * * * pi/usr/bin/python/home/pi/bot/newsbot/newsbot.py这是行不通的。

所以我想到了一个解决办法。我将创建一个shell脚本来执行python脚本

#!/bin/sh
python newsbot.py >> cron.txt

所以当一个cron作业工作时,它只创建一个空白的cron.txt文件…

我不知道我在做什么。我敢肯定问题是在TwitterFollowBot没有正确安装的地方…任何帮助或想法…

你的脚本显示

my_other_bot = TwitterBot("config.txt")

但是crontab不知道这个文件在哪里,因为它的环境非常有限。它可能会在/中查找它。

所以你需要使用一个绝对路径,这样它就知道在哪里找到文件:

my_other_bot = TwitterBot("/path/to/config.txt")

有关典型问题的更多信息,请参见从crontab wiki中调试cron问题的提示。

最新更新