最近使用PyQt5 SQL 連接PostgreSQL執行以下代碼,發現讀取不到驅動,折騰了2天,測試了網上許多方法,但是沒有我想要的效果。
到目前已經解決了,所以大概總結一下過程。
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel, QSqlRecord
def openDatabase():
db = QSqlDatabase.addDatabase('QPSQL')
db.setHostName("localhost")
db.setDatabaseName("postgres")
db.setUserName("postgres")
db.setPassword("1234")
print( db.open())
if __name__ == "__main__":
app = QApplication(sys.argv)
openDatabase()
sys.exit(app.exec_())
錯誤如下:

Python 版本 3.7
SQL版本 PostgreSQL 11
PyQt5版本
Qt5 Version Number is: 5.13.0
PyQt5 Version is: 5.13.0
Sip Version is: 5.0.0
解決方案:
添加數據庫的路徑到系統變量Path,然后重新電腦!
如:
D:\PostgreSQL\11\lib
D:\PostgreSQL\11\include
D:\PostgreSQL\11\bin

已解決:

總結:
剛開始我參照網上MYSQL的方式叫libpq.dll 放到QT5的相關文件夾中,但是沒有成功。后來懷疑是數據庫和Python 的32位與64位不兼容導致,
於是我重裝了一個64位的數據庫。但是還是提示沒有驅動。直到添加路徑到系統變量后才可以。最后我又安裝了32位的數據庫也成功連上了,也就
是說64位是兼容32位的。
