pyqt+sqlite程序發佈後,提示「driver not loaded」

使用PyQt4寫了一個小程序,其中用到了sqlite數據庫,在個人調試環境中一切正常。當我使用cx_Freeze將其打包後,在運行相應的exe時,出現問題,總是提示"sqlite driver not loaded"的錯誤,看來是沒有找到sqlite對應的驅動。因而百度+google了一番,發現有這樣問題的人還很多,其出現這種錯誤的緣由很簡單,就是缺DLL庫了。cx_Freeze已經將sqlite3.dll、qtsql4.dll拷貝到工做目錄下,可是QT自己的數據庫驅動qsqlite4.dll沒有。因而我搜到了一個qsqlite4.dll文件,將其直接考到工做目錄下,運行,仍然報錯。因而在深刻的研究了一下,發現所謂的數據庫驅動,在qt裏屬於plugins,這些插件在打包發佈的時候,必須放置在工做目錄的特定文件夾下面,好比數據庫驅動要放在"sqldrivers"目錄下,而且要小寫。以下表所示: html

Base Class Directory Name Key Case Sensitivity
QAccessibleBridgePlugin accessiblebridge Case Sensitive
QAccessiblePlugin accessible Case Sensitive
QDecorationPlugin decorations Case Sensitive
QIconEnginePlugin iconengines Case Insensitive
QImageIOPlugin imageformats Case Sensitive
QInputContextPlugin inputmethods Case Sensitive
QKbdDriverPlugin kbddrivers Case Sensitive
QMouseDriverPlugin mousedrivers Case Sensitive
QPictureFormatPlugin pictureformats Case Sensitive
QScreenDriverPlugin gfxdrivers Case Sensitive
QScriptExtensionPlugin script Case Sensitive
QSqlDriverPlugin sqldrivers Case Sensitive
QStylePlugin styles Case Insensitive
QTextCodecPlugin codecs Case Sensitive

 

 

主要參考了:http://www.cuteqt.com/blog/?p=1002                     帶着插件一塊兒走 sql

                  http://www.cuteqt.com/blog/?p=1059                     帶着插件一塊兒走續篇 數據庫

                  http://doc.qt.nokia.com/4.3/plugins-howto.html      How to Create Qt Plugins 小程序

                  http://doc.qt.nokia.com/4.3/qt-conf.html                  Using qt.conf google

相關文章
相關標籤/搜索