【问题标题】:pyinstaller QSqlDatabase: QSQLITE driver not loaded QSqlDatabase: available drivers:pyinstaller QSqlDatabase:未加载 QSQLITE 驱动程序 QSqlDatabase:可用驱动程序:
【发布时间】:2018-05-17 20:24:49
【问题描述】:

我使用 pyqt5 编写了一个 GUI 应用程序,并包含一个 QtSql 数据库 QSQLITE。该应用程序完美运行。但是,当我将 pyinstaller 运行到我的应用程序包时,该应用程序会一直运行,直到它必须调用 QtSQL DATABASE QSQLITE。这是我得到的错误

QSqlDatabase:未加载 QSQLITE 驱动程序 QSqlDatabase:可用的驱动程序:

如何加载驱动程序,以便在运行 pyinstaller 时包含它。

谢谢

【问题讨论】:

  • 您应该发布加载 sqlite 驱动程序的代码部分。
  • @MalloyDelacroix 问题与代码无关,而与Pyinstaller 有关。我实际上遇到了同样的问题,但使用QMYSQL driver 并使用PySide。该应用程序可以在 python 解释器中正常工作,但是在运行使用 PyInstaller 创建的可执行文件时会出现此错误

标签: pyqt5 pyinstaller qsqldatabase


【解决方案1】:

我在使用PySide 时遇到了与QMYSQL driver 相同的问题,我找到了解决方案。

您需要手动将驱动程序包含到qt4_plugins/sqldrivers/ 捆绑目录中。
为此,在您的规范文件中添加:

a = Analysis(...
    binaries=[('/usr/lib/x86_64-linux-gnu/qt4/plugins/sqldrivers/libqsqlmysql.so', 'qt4_plugins/sqldrivers')],
    ...
)

这适用于QMYSQL 驱动程序,但您只需要找到SQLITE 驱动程序的名称(可能是libqsqlsqlite

【讨论】:

  • 感谢 Loic 的回复。我刚刚尝试了您的解决方案,它似乎有效。我还发现,如果我在全新安装 pyqt5 和 python 的虚拟环境中编译 pyinstaller。驱动程序会自动添加。谢谢
猜你喜欢
  • 2013-11-08
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
相关资源
最近更新 更多