尝试访问 pyQt 中的数据库时未加载驱动程序
Driver not loaded when trying to access database in pyQt
我在 Ubuntu(使用 anaconda/spyder 环境)中使用 PyQT 进行编码,我正在尝试通过 QSqlDatabase 访问数据库,但是
`
db = QSqlDatabase()
db.addDatabase('QSQLITE',"SQLITE")
db.setDatabaseName("test.db")
if(db.open()):
print("Opened!")
db.close()
else:
print(db.lastError().databaseText())
print(list(map(str, db.drivers())))
`
给我
驱动程序未加载
['QSQLITE']
我在 /usr/include 和 /usr/lib 中有 sqlite 文件并寻找答案,但大部分都来自不可用的驱动程序(我的似乎没问题),mysql driver, on windows 和Qt所以我没能成功通过查看网络解决它。
感谢您的回答!
编辑:
linux-vdso.so.1 => (0x00007fffe93f5000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007efe41c7b000)
libQt5Sql.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5 (0x00007efe4210a000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007efe417a5000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efe41423000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efe41059000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efe40e3c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efe40c38000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007efe40a1e000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007efe405bc000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007efe40228000)
libpcre16.so.3 => /usr/lib/x86_64-linux-gnu/libpcre16.so.3 (0x00007efe3ffc2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007efe3fcb1000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007efe3faa9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efe3f7a0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efe3f58a000)
/lib64/ld-linux-x86-64.so.2 (0x00007efe41f50000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007efe3dad3000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007efe3d863000)
所以环境不是问题,但我的代码是。通过查看很多我跳过了开始(我过快地传递到 QSqlDatabase 文档中的驱动程序部分)。
QSqlDatabase::QSqlDatabase()
创建一个空的、无效的 QSqlDatabase 对象。
所以我只需要更换
db = QSqlDatabase()
db.addDatabase('QSQLITE',"SQLITE")
线下:
db = QSqlDatabase.addDatabase('QSLITE')
我以前的代码给了我:
打开了!
我在 Ubuntu(使用 anaconda/spyder 环境)中使用 PyQT 进行编码,我正在尝试通过 QSqlDatabase 访问数据库,但是 `
db = QSqlDatabase()
db.addDatabase('QSQLITE',"SQLITE")
db.setDatabaseName("test.db")
if(db.open()):
print("Opened!")
db.close()
else:
print(db.lastError().databaseText())
print(list(map(str, db.drivers())))
`
给我
驱动程序未加载
['QSQLITE']
我在 /usr/include 和 /usr/lib 中有 sqlite 文件并寻找答案,但大部分都来自不可用的驱动程序(我的似乎没问题),mysql driver, on windows 和Qt所以我没能成功通过查看网络解决它。
感谢您的回答!
编辑:
linux-vdso.so.1 => (0x00007fffe93f5000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007efe41c7b000)
libQt5Sql.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5 (0x00007efe4210a000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007efe417a5000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efe41423000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efe41059000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efe40e3c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efe40c38000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007efe40a1e000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007efe405bc000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007efe40228000)
libpcre16.so.3 => /usr/lib/x86_64-linux-gnu/libpcre16.so.3 (0x00007efe3ffc2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007efe3fcb1000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007efe3faa9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efe3f7a0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efe3f58a000)
/lib64/ld-linux-x86-64.so.2 (0x00007efe41f50000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007efe3dad3000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007efe3d863000)
所以环境不是问题,但我的代码是。通过查看很多我跳过了开始(我过快地传递到 QSqlDatabase 文档中的驱动程序部分)。
QSqlDatabase::QSqlDatabase()
创建一个空的、无效的 QSqlDatabase 对象。
所以我只需要更换
db = QSqlDatabase()
db.addDatabase('QSQLITE',"SQLITE")
线下:
db = QSqlDatabase.addDatabase('QSLITE')
我以前的代码给了我:
打开了!