Я работаю над ботом Python Twitter, который отлично работает в редакторе Python и терминале Raspberry Pi, но когда я запускаю его с помощью cron, я получаю сообщение об ошибке.
кронтаб-файл:
* * * * * /home/eric/code/quotebot/quotebot.py >> /home/eric/code/quotebot/logs/minute.log 2>&1
Сообщение об ошибке:
Traceback (most recent call last):
File "/home/eric/code/quotebot/quotebot.py", line 22, in <module>
cursor.execute("SELECT MIN(countoftweets) FROM quotebot")
sqlite3.OperationalError: no such table: quotebot
Поскольку он работает при запуске из терминала и IDE, мне интересно, есть ли проблема с разрешениями или что-то еще, о чем я не знаю. Таблица определенно существует, и база данных определенно существует.
Если это ваш локальный пользователь crontab, то при запуске скрипта текущий каталог устанавливается в ваш домашний каталог, /home/eric
. Вы, наверное, сделали что-то вроде sqlite3.connect('quotebot.db')
. Этого файла не существует, и sqlite3 с радостью создаст для вас новую пустую БД.
Если вам нужны файлы за пределами вашего дома, вам придется либо использовать абсолютные пути, либо получить путь к скрипту с помощью os.path.dirname(__file__)
.