仅当从终端运行时出现Python SQLite错误

rqdpfwrv  于 2023-02-19  发布在  SQLite
关注(0)|答案(1)|浏览(149)

所以我使用这个脚本来保存我的raspberry pi上的温度和湿度数据,相关部分看起来像这样:

import sqlite3 as db

con = db.connect('hygolog.db')
cur = con.cursor()

#This part is commented because I used it when running the first time
#cur.execute("CREATE TABLE measure(time STR PRIMARY KEY, humidity REAL, tempertaure REAL)")
#con.commit()

while True:
    cur.execute(f"""INSERT INTO measure
VALUES(datetime('now','localtime'),{round(humidity,3)},{round(temperature,3)})""")
    con.commit()

当从代码编辑器执行文件时,这工作得很好(我检查了一下,之后在DB中找到了数据),但是当我从终端执行文件时,我得到了以下错误:

user@raspberrypi:~ $ python Desktop/hygometer.py
Traceback (most recent call last):
  File "/home/user/Desktop/hygometer.py", line 19, in <module>
    cur.execute(f"""INSERT INTO measure
sqlite3.OperationalError: no such table: measure

这也是一个奇怪的地方失败,为什么它不应该找到非常现有的表时,通过终端执行?

kuuvgm7e

kuuvgm7e1#

请尝试指定hygolog.db的完整路径,例如C:/Files/hygolog.db。当您从终端运行此命令时,可能会从不同的文件夹运行,因此它会在该文件夹中创建一个新的空hygolog.db。

相关问题