postgresql 未加载PySide6(Qt 6.0+)QPSQL驱动程序

vmdwslir  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(107)

我在Windows 10中编写了这个项目。我使用Postgres数据库。我使用QSqlTableModel来显示客户端表。

self.model = QtSql.QSqlTableModel()
self.ui.tableView.setModel(self.model)

现在将设备改为macbook m1(macOS Monterey)。问题开始了。安装了Psycopg 2-binary。我连接到数据库。但是QSqlTableModel不工作。启动项目时,PyCharm上出现以下错误:

QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins

终端显示如下:

marcus@MacBook-Air-Marcus ~ % postgres -V                     
postgres (PostgreSQL) 14.2
marcus@MacBook-Air-Marcus ~ % psql -V    
psql (PostgreSQL) 14.2


我创建的链接。

marcus@MacBook-Air-Marcus ~ % brew link --overwrite postgresql
Linking /opt/homebrew/Cellar/postgresql/14.2_1... 4318 symlinks created.

marcus@MacBook-Air-Marcus bin % export PATH=$PATH:/opt/homebrew/Cellar/libpq/14.2/bin
marcus@MacBook-Air-Marcus bin % export PATH=$PATH:/opt/homebrew/opt/libpq/lib  
marcus@MacBook-Air-Marcus bin % echo $PATH          
/opt/homebrew/opt/openssl@1.1/bin:/opt/homebrew/opt/libpq/bin:/usr/local/opt/libpq/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/opt/homebrew/Cellar/libpq/14.2/bin:/opt/homebrew/opt/libpq/lib

我不知道怎么修。
在路径中,添加了qmake文件(/Users/marcus/Qt/6.3.0/macos/bin)的路径。

marcus@MacBook-Air-Marcus sqldrivers % echo $PATH
/Users/marcus/Qt/6.3.0/macos/bin:/opt/homebrew/opt/openssl@1.1/bin:/opt/homebrew/opt/libpq/bin:/usr/local/opt/libpq/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/marcus/Qt/6.3.0/Src/qtbase/src/plugins/sqldrivers

文档(https://doc.qt.io/qt-5/sql-driver.html#qpsql)中指定了以下方法:如何在Unix和macOS上构建QPSQL插件您需要安装PostgreSQL客户端库和头文件。
要让qmake查找PostgreSQL头文件和共享库,请按以下方式运行qmake(假设PostgreSQL客户端安装在/usr中):

cd $QTDIR/qtbase/src/plugins/sqldrivers
qmake -- PSQL_INCDIR=/usr/include/pgsql
make sub-psql

但我做不到抱歉我是新手。

marcus@MacBook-Air-Marcus psql % pwd
/Users/marcus/Qt/6.3.0/Src/qtbase/src/plugins/sqldrivers/psql
marcus@MacBook-Air-Marcus psql % qmake -o Makefile /Users/marcus
Cannot read /Users/marcus: file to open is a directory

目录中有以下文件

marcus@MacBook-Air-Marcus psql % ls
CMakeLists.txt  main.cpp    qsql_psql.cpp
README      psql.json   qsql_psql_p.h
rkttyhzu

rkttyhzu1#

QPSQL只是libpq库的一个 Package 器。您必须在您的机器上安装Postgres应用程序,或者使用brew,或者下载并安装Postgres.app。然后让您的应用程序知道库在哪里:例如,如果您使用brew set环境变量

export DYLD_LIBRARY_PATH=/opt/brew/lib

如果是Postgres.app,请在Postgres.app的内容中查找lib路径

相关问题