Py2app不包含Sqlite驱动程序 - “数据库错误:驱动程序未加载驱动程序未加载”

时间:2012-06-20 02:14:33

标签: sqlite py2app

我遇到this post on the py2app mailing list中描述的相同问题。

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

  

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

你试过他说过的话吗? 在这篇文章? py2app setup.py usage question 它提到了

  

您需要将sqlalchemy.dialects.sqlite作为包

包含在内

答案 1 :(得分:1)

我设法让这个工作如下:

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

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

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

答案 2 :(得分:1)

原来pyside配方有办法指定你需要哪些qt-plugins ......

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

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