我遇到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
目录复制到我的应用程序的Resources
或Frameworks
目录仍然会导致相同的错误。
如何在使用py2app构建的应用程序中添加sqlite支持?
答案 0 :(得分:1)
您需要将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。