2012-06-20 205 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庫。

相關問題