[Eric] Unable to activate eric4 assistant plugin: The SQLite database driver is not available.
Matthew Sorenson
veraiste at veraiste.com
Fri Feb 12 07:04:44 GMT 2010
I am having trouble activating the eric4 assistant plugin. The error is:
"The SQLite database driver is not available." I am using PyQt 4.7 on
Python 2.6.4 and eric 4.4.1. The database drivers are all plugins.
I believe I have narrowed the problem down to the differences between
the examples at the end. Checking into the databases before
instantiating a QApplication seems to change the library paths.
The PluginAssistantEric.py script has the following check:
drivers = QSqlDatabase.drivers()
if drivers.contains("QSQLITE"):
return True
else:
error = self.trUtf8("The SQLite database driver is not
available.")
return False
At this point, there are no drivers loaded. I recreated the situation in
the shell and
"QtGui.QApplication.addLibraryPath("C:\Python26\Lib\site-packages\PyQt4\plugins")"
will load the drivers. So while I have a temporary fix by adding this
line into the script, I would like to know how I could solve this in a
more permanent fashion. My apologies if this is a problem with PyQt
instead of eric, but I do not know what the correct behavior should be.
Thanks,
Matthew Sorenson
Examples:
------------------------------------------------------------------------------------------------------------
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit
(Intel)] on hermes, Standard
>>> import sys
>>> from PyQt4 import QtGui, QtSql
>>> app = QtGui.QApplication(sys.argv)
>>> QtSql.QSqlDatabase.drivers().count()
7
>>> db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
>>> QtGui.QApplication.libraryPaths().count()
2
>>> print QtGui.QApplication.libraryPaths()[0]
C:/Python26/Lib/site-packages/PyQt4/plugins
>>> print QtGui.QApplication.libraryPaths()[1]
C:/python26
>>>
-------------------------------------------------------------------------------------------------------------
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit
(Intel)] on hermes, Standard
>>> import sys
>>> from PyQt4 import QtGui, QtSql
>>> QtSql.QSqlDatabase.drivers().count()
0
>>> app = QtGui.QApplication(sys.argv)
>>> QtSql.QSqlDatabase.drivers().count()
0
>>> db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
>>> StdErr: QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
>>> QtGui.QApplication.libraryPaths().count()
1
>>> print QtGui.QApplication.libraryPaths()[0]
C:/python26
>>>
QtGui.QApplication.addLibraryPath("C:\Python26\Lib\site-packages\PyQt4\plugins")
>>> QtGui.QApplication.libraryPaths().count()
2
>>> QtSql.QSqlDatabase.drivers().count()
7
>>> db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
>>> StdErr: QSqlDatabasePrivate::removeDatabase: connection
'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name
'qt_sql_default_connection', old connection removed.
More information about the Eric
mailing list