Py学习  »  Python

Python Crontab无法读取Sqlite3表

Eric • 3 年前 • 1296 次点击  

我正在开发一个Python Twitter机器人,它在Python编辑器和Raspberry Pi的终端中运行良好,但当我使用cron运行它时,会出现一个错误。

crontab文件:

* * * * * /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运行时工作,所以我想知道是权限问题还是其他我不知道的问题。表肯定存在,数据库肯定存在。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133622
 
1296 次点击  
文章 [ 2 ]  |  最新文章 3 年前
Eric
Reply   •   1 楼
Eric    3 年前

我一直在黑客攻击它,发现有人有类似的问题,它是 answered here .

我必须从以下位置更改数据库文件的路径: 路径db to/directory/directory/path。分贝

现在成功了!

Tim Roberts
Reply   •   2 楼
Tim Roberts    3 年前

如果这是您的本地用户crontab,那么当脚本运行时,当前目录将设置为您的主目录, /home/eric .你可能做了类似的事情 sqlite3.connect('quotebot.db') 。该文件不存在,sqlite3很乐意为您创建一个新的空数据库。

如果您需要家庭以外的文件,则必须使用绝对路径,或者使用 os.path.dirname(__file__) .