
2021-03-25 10:17:31 发布
您现在位置:Python中文网/ 问答频道 /正文14162 3
网友
男|程序猿一只,喜欢编程写python代码。我试图在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 sqlite3from PyQt5.QtWidgets import QMessageBoximport osdef 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函数的文件所在的位置
2条回答
but if I execute it from another side it throws the error.
所以你的密码
r = str(os.getcwd())final = r.replace(\"\\\\\",\"/\")result = Noned=final+\"/InfoDB.db\"
每次从其他地方运行程序时都会提供新的文件名。当你跑的时候conexion = sqlite3.connect(d)SQLite看不到数据库,而是在那里创建的。在
您应该在存储数据库文件的实际文件名的地方创建一些变量。在

通过附加这行代码来解决这个问题
r = os.path.dirname (__ file __)
source = r.replace (\'\\\\\',\" / \") +\" / InfoDB.db \"据我所知,这行返回文件位置的绝对值
相关问题本文链接: http://maind.immuno-online.com/view-751252.html