【发布时间】:2018-04-15 15:47:37
【问题描述】:
我有一个用 python 编写的警报脚本,它从 sqlite 数据库收集警报。
如果我执行脚本: python /home/pi/VRobot/alarm.V2.py 一切正常。
当我将它放在 /etc/profile 中执行它并在启动时运行它时,我收到以下错误。
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: reminders [SQL: u'SELECT reminders.id AS reminders_id, reminders.activity AS reminders_activity, reminders.time AS reminders_time, reminders.day AS reminders_day, reminders.song AS reminders_song, reminders.timeofday AS reminders_timeofday \nFROM reminders'] (Background on this error at: http://sqlalche.me/e/e3q8)
/etc/profile 脚本如下所示:
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
amixer set 'PCM' 100%
python /home/pi/VRobot/alarm.V2.py &
关于为什么脚本在正常运行时运行良好但在启动时执行时却不能正常运行的任何想法?
我是这样做的:
engine = create_engine('sqlite:///foo.db', echo=True)
所以我使用相对路径来连接数据库。
【问题讨论】:
-
那么你使用什么路径来连接数据库呢?是相对路径还是绝对路径?
-
该错误通常表明您正在打开与有效路径不同的绝对路径,解析为空数据库。
-
@MartijnPieters 我这样做是这样的:engine = create_engine('sqlite:///foo.db', echo=True) 所以我使用相对路径来连接数据库。
标签: python sqlite sqlalchemy