我花了几个小时试图让这个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问题的提示。