2012-06-20 208 views
2

我遇到了与this post on the py2app mailing list中描述的相同的问题。Py2app不包含Sqlite驱动程序 - “数据库错误:驱动程序未加载驱动程序未加载”

我有一个使用sqlite数据库的python应用程序。在我的机器上安装了所有的依赖关系,没有问题。然而,当我捆绑与py2app的应用程序,点击导致的数据库访问此错误结果的菜单:

Database error: Driver not loaded Driver not loaded

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

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

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

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

回答

1

原来,pyside配方确实有一个方法来指定你需要的QT-插件...

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

这使得所有的sqldrivers到正确的目录,并设置正确qt.conf。

1

你有没有在这篇文章中试过他说的 ? py2app setup.py usage question 它提到

you need to include the sqlalchemy.dialects.sqlite as a package

+0

我没有使用sqlalchemy,因此没有帮助。 –

1

我设法得到这个工作如下:

与py2app构建,应用程序的内容目录中后,作出新的plugins目录。

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

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

相关问题