我有一个简单的python脚本,可以将数据放入数据库中。脚本和
数据库拥有所有者www-data
。当我运行sudo python
并写下
命令一个接一个地运行,但是如果我运行python monitor.py
或sudo 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()
答案 0 :(得分:0)
这听起来像是一个权限问题。写访问权限仅授予用户,即root用户。您需要将用户更改为直接自己,而不是root。您可以在许多* nix系统上使用chmod
执行此操作。
您还可以对该组中的任何人进行写访问。