2

我在py2app 邮件列表上的这篇文章中遇到了同样的问题。

我有一个使用 sqlite 数据库的 python 应用程序。在我安装了所有依赖项的机器上,没有问题。但是,当我将应用程序与 py2app 捆绑在一起时,单击导致访问数据库的菜单会导致此错误:

数据库错误:未加载驱动程序 未加载驱动程序

对于 Windows 安装程序, \Qt\version\plugins\sqldrivers\*.*可以将其中的文件复制到\myApp\sqldrivers\*

Mac 上的相同文件可以在 /opt/local/share/qt4/plugins/sqldrivers(通过 Macports 安装)中找到。

但是,将sqldrivers目录复制到我的应用程序ResourcesFrameworks目录仍然会导致相同的错误。

如何将 sqlite 支持添加到使用 py2app 构建的应用程序中?

4

3 回答 3

1

你试过他在这篇文章中所说的吗? 它提到的py2app setup.py使用问题

您需要将 sqlalchemy.dialects.sqlite 作为一个包包含在内

于 2012-06-29T13:21:38.143 回答
1

我设法让它工作如下:

使用 py2app 构建后,在应用程序的 Contents 目录中,创建一个新plugins目录。

然后将 sqldrivers/libqsqlite.dylib 复制到这个插件目录中。

之后,必须使用 install_name_tool 将 libqsqlite.dylib 中的库链接更改为指向应用程序 Frameworks 目录中的 Qt 库而不是系统 Qt 库。

于 2012-06-30T05:36:43.917 回答
1

原来 pyside 配方确实有一种方法来指定你需要哪些 qt 插件......

    options=dict(py2app={
                         'argv_emulation': True,
                         'qt_plugins' : "sqldrivers",
                         }
                 ),

这会将所有 sqldrivers 放入正确的目录并正确设置 qt.conf。

于 2015-12-16T02:58:56.053 回答