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.

_______________________________________________
Eric mailing list
[email protected]
http://www.riverbankcomputing.com/mailman/listinfo/eric

Reply via email to