LINUX.ORG.RU

PyQt - драйвер есть, но нет

 , ,


0

2
from PyQt5.QtSql import QSqlDatabase

qq = QSqlDatabase('QMYSQL')

Выхлоп при запуске:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
По трассировке он пытается найти libmysqlclient.so.18, в системе установлен libmysqlclient20. Пробовал делать симлинки с нужным именем - хрен там, работать он с ним не хочет, хотя файл находит:
19:01:26.198239 open("/usr/lib/libmysqlclient.so.18", O_RDONLY|O_CLOEXEC) = 3
Тем более, что драйвер-то оно в доступных выводит, значит, либу как-то всё же, наверное, видит.
WTF и как с этим бороться?

Пересобрать qt с libmysqlclient нужной версии не пробовали?

lucentcode ★★★★★ ()

а нафига QtSql, если python умеет работать с MySQL и без Qt?

Ford_Focus ★★★★★ ()
Ответ на: комментарий от Ford_Focus

qtsql умеет интегрироваться с qtgui. Например, можно таблицу подключить непосредственно к табличному виджету.

te111011010 ()

Вообще, как вариант решения этой проблемы, установить MariaDB вместо MySQL, при чем MariaDB брать с репозитория ихнего. Не знаю как для DEB-систем, а для RPM у них точно есть такой пакет как MariaDB-compat, в котором лежат разные версии этой самой libmysqlclient (в deb-никах вроде бы тоже такое было, но не помню точно название пакета).

Еще как вариант: пересобрать Qt либо с libmysqlclient.so.18, либо собрать в него пусть даже libmysqlclient.so.20, только собрать его статически.

sphericalhorse ★★★★ ()

Вообще я соврал. Даже не обязательно ставить MariaDB-compat.
libmysqlclient.so.18 — стандартная версия этой либы в последних версиях что MySQL, что MariaDB. Так что просто ставь MySQL Community либо MariaDB, только не оттуда откуда ты сейчас ставишь (репозиторий системы?), а с репозиториев разработчиков.

Я с этой либой уже немного посражался, и могу сказать, что симлинками ты точно проблему не решишь.

sphericalhorse ★★★★ ()
Ответ на: комментарий от Ford_Focus

Из спортивного интереса. Qt всё равно используется для рисования гуя. К тому же хочется иметь возможность запускать под оффтопом (на всякий случай), а mysql.connector там требует жирнющую либу для VS и к тому же у меня всё равно не собирается.

WereFox ★☆ ()
Ответ на: комментарий от sphericalhorse

репозиторий системы?

Ага, удобно. Собрал из сорцов, спасибо.

WereFox ★☆ ()
Ответ на: комментарий от WereFox

К тому же хочется иметь возможность запускать под оффтопом

тогда пистон, имхо, не лучшее решение

либо electron, либо чистый qt. причём при нехватке времени первое предпочтительнее.

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 1)
Ответ на: комментарий от Ford_Focus

либо electron

Жрать ноду? Нет, спасибо.

либо чистый qt

Пока лень. Тем более, шиндовз используется редко.

Скрипт меньше пары сотен строк, уже готовый. Надо было только заменить кусок с мускуем.

WereFox ★☆ ()
Ответ на: комментарий от Ford_Focus

тогда пистон, имхо, не лучшее решение

Почему это? Можно сделать инсталятор или запаковать всё в exe.

pawnhearts ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.