PySide6(Qt 6.0+) QPSQL driver not loaded
Я пишу проект с GUI интерфейсом для Windows 10. БД Postgres. Для отображения таблицы клиентов использую QSqlTableModel.
self.model = QtSql.QSqlTableModel()
self.ui.tableView.setModel(self.model)
Сейчас сменил устройство на macbook m1 (macOS Monterey). И начались проблемы. Psycopg2-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/[email protected]/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
Я не могу понять, как их исправить. В PATH добавлен путь к файлу 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/[email protected]/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 ): Как собрать плагин QPSQL для Unix и macOS. Вам потребуется клиентская библиотека 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