2011-08-09 7 views
2

私はPyQTアプリケーションを開発しており、SQLデータベースを使いたいと思います。エンジンはそれほど重要ではありません。私はシステムにMySQLをインストールしています(頻繁に使用します)、SQLite3 DLLもデフォルトでsystem32フォルダにあり、qsqlite dllの横にコピーを置いています。PyQTはSQLドライバを見つけることができません

しかし、私は

db = QtSql.QSqlDatabase.addDatabase("QSQLITE") 

または

db = QtSql.QSqlDatabase.addDatabase("QMYSQL") 

を呼び出すときに私が得るすべては次のとおりです。

QSqlDatabase: QSQLITE driver not loaded 
QSqlDatabase: available drivers: 

すべてではありませんドライバー。私は何をすべきか?前もって感謝します。

+0

使用しているOSはどれですか?どのようにPyQtをインストールしましたか? – armonge

答えて

0

私は英語をうまく話せません。

Windows 10、PostgresqlでPython 2.7を使用し、QTでguiを開発し、PyQt4とQtSqlを使用します。スパイダーを使いましょう。 (実際はすべてがPython(x、y)に含まれています)

- )が、ここには簡単な解決策があります。 オープンは、ファイルC:\ Python27 \のqt.confは、最初に私は、ファイル内のこの行だった:

Prefix = C:/Python27/Lib/site-packages/PyQt4 
Binaries = C:/Python27/Lib/site-packages/PyQt4 

を、あなたは、次の行を追加します

Plugins = C:/Python27/Lib/site-packages/PyQt4/plugins 
Translations = C:/Python27/Lib/site-packages/PyQt4/translations 

をプラグインがでていることを確認しますC:/ Python27/Lib/site-packages/PyQt4/pluginsにあります。 その後、pythonを閉じてもう一度開きます。その後、すべてが を完璧に動かす。ここで同じ答えが見つかりましたhttp://www.voidynullness.net/blog/2013/01/24/pyqt-database-driver-loading-issues-on-windows-after-installing-pyside/

+0

ANACONDA 5.0を使用している場合。Windows 10の場合、これはデフォルトのドライバをインストールしていません。ターミナルを開き、 'pip install PyQt5'を使うべきです。それからあなたはドライバーを持っています。 –

4

私はPySideを使ってPython 3.3でアプリケーションを開発しています。私も同じ問題に遭遇し、回避策があります。

QApplication()がQtSql.QSqlDatabase.addDatabase( 'QSQLITE')の前に呼び出された場合、問題は解決されています。

は最後に、私はaddDatabase前に以下のコードを配置する方法を試してみて、問題が

site_pack_path = site.getsitepackages()[1] 
QtGui.QApplication.addLibraryPath('{0}\\PySide\\plugins'.format(site_pack_path)) 

PSを解決しています。 「sqldrivers」フォルダが「plugins」フォルダにあることを確認してください。

+0

私は同じ問題を抱えていました(それはPyQtではなくPySideでした)。あなたのソリューションは私を助けました!本当にありがとう。 –

+0

@cigar huang質問がなぜ必要なのでしょうか?これはシームレスに行うべきではありませんか?私はこれのような修正が(私のために働いた、ちなみに+1)、私は迷信的な行動、貨物カルトプログラミングに従事しているように感じるように感じる。なぜそれが最初に必要なのかを本当に理解することなく、物事を入れています。 – neuronet

+1

@neuronet referece [link](http://www.cnblogs.com/ungshow/archive/2010/10/10/1847082.html)それはなぜソリューションが機能するのかを説明していますが、簡体字中国語です。 Qtアプリケーションは、.exeの横にあるフォルダまたはライブラリパスにあるプラグインを検索します。上記のソリューションは、Pysideのプラグインフォルダをライブラリパスに追加し、 'sqldrivers'がそこにあります。別の解決策は、 'sqldriver'フォルダを.exeまたは.pyの同じ場所にコピーするのではなく、ライブラリパスを追加する必要はありません。 –