Sqlite python - 尝试编写只读数据库

时间:2016-03-26 17:08:20

标签: python sqlite

我有一个简单的python脚本,可以将数据放入数据库中。脚本和 数据库拥有所有者www-data。当我运行sudo python并写下 命令一个接一个地运行,但是如果我运行python monitor.pysudo python monitor.py它就不起作用;它说,"attempt to write a read only database"

这是my script :(它从arduino接收数据)

from serial import Serial
from time import sleep
import sqlite3

serial_port = '/dev/ttyACM0';
serial_bauds = 9600;

# store the temperature in the database
def log_light(value):

    conn=sqlite3.connect('/var/db/arduino.db')
    curs=conn.cursor()

    curs.execute("UPDATE sensor1 set status = (?)", (value,))

    # commit the changes
    conn.commit()

    conn.close()

def main():
    s = Serial(serial_port, serial_bauds);
    s.write('T');
    sleep(0.05);
    line = s.readline();
    temperature = line;
    s.write('H');
    sleep(0.05);
    line = s.readline();
    humidity = line;
    s.write('L');
    sleep(0.05);
    line = s.readline();
    light = line;
    log_light(light);

    if __name__=="__main__":
        main()

1 个答案:

答案 0 :(得分:0)

这听起来像是一个权限问题。写访问权限仅授予用户,即root用户。您需要将用户更改为直接自己,而不是root。您可以在许多* nix系统上使用chmod执行此操作。 您还可以对该组中的任何人进行写访问。