我试图在python中使用sqlite3数据库,但出现以下错误:
Traceback (most recent call last):
File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\SchoolAdmin-Director.py", line 4, in <module>
from execute_files.Sqlitedb import FirstUseInfo
File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\execute_files\Sqlitedb.py", line 17, in <module>
FirstUseInfo()
File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\execute_files\Sqlitedb.py", line 12, in FirstUseInfo
s = cursor.execute("SELECT Use FROM MainData")
sqlite3.OperationalError: no such table: MainData
[Finished in 0.2s]
FirstUseInfo
函数与数据库一起位于以下路径的文件中:C:\Users\Angel\Desktop\Project\Src_School_Admin\execute_files
发送来调用FirstUseInfo
函数的文件位于C:\Users\Angel\Desktop\Project\Src_School_Admin
但它不起作用一直在标记错误
第一.py
^{pr2}$Sqlitedb.py
import sqlite3
from PyQt5.QtWidgets import QMessageBox
import os
def FirstUseInfo():
r = str(os.getcwd())
final = r.replace("\\","/")
result = None
d=final+"/InfoDB.db"
conexion = sqlite3.connect(d)
cursor = conexion.cursor()
s = cursor.execute("SELECT Use FROM MainData")
for i in s:
result = int(i[0])
return print(result)
conexion.close()
FirstUseInfo()
如果我从Sqlitedb.py
运行FirstUseInfo ()
没有问题,但是如果我从另一个侧面执行它,它会抛出错误。在
我意识到由于某种原因,在目录C: \ Users \ Angel \ Desktop \ Project \ Src_School_Admin
中创建了另一个数据库,这是发送来调用FirstUseInfo
函数的文件所在的位置
所以你的密码
每次从其他地方运行程序时都会提供新的文件名。 当你跑的时候
conexion = sqlite3.connect(d)
SQLite看不到数据库,而是在那里创建的。在您应该在存储数据库文件的实际文件名的地方创建一些变量。在
通过附加这行代码来解决这个问题
r = os.path.dirname (__ file __)
source = r.replace ('\\'," / ") +" / InfoDB.db "
据我所知,这行返回文件位置的绝对值相关问题 更多 >
编程相关推荐