Code

Opened 6 years ago

Closed 6 years ago

#9113 closed (fixed)

Misleading error message if sqlite3 is not installed as exception is swallowed

Reported by: jjackson Owned by: nobody
Component: Uncategorized Version: 1.0
Severity: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation:
Needs tests: Patch needs improvement:
Easy pickings: UI/UX:

Description

This is similar to #1673, which has been fixed. But there is still a case when this can happen:

from root/django/trunk/django/db/backends/sqlite3/base.py

14 	try:
15 	    try:
16 	        from sqlite3 import dbapi2 as Database
17 	    except ImportError:
18 	        from pysqlite2 import dbapi2 as Database
19 	except ImportError, e:
20 	    import sys
21 	    from django.core.exceptions import ImproperlyConfigured
22 	    if sys.version_info < (2, 5, 0):
23 	        module = 'pysqlite2'
24 	    else:
25 	        module = 'sqlite3'
26 	    raise ImproperlyConfigured, "Error loading %s module: %s" % (module, e)

If the first import fails, and then the second import fails, you'll get this error message: "ImproperlyConfigured: Error loading sqlite3 module: No module named pysqlite2" when the error may really be that there was no module named sqlite3 available. (That was my particular problem.) The 'module' variable gets set based on the sys.version, but the exception is based on whichever one last failed. There's no pysqlite2 in Python 2.5, so if the first import fails under 2.5, you're going to get the misleading error message.

Attachments (0)

Change History (1)

comment:1 Changed 6 years ago by mtredinnick

  • Resolution set to fixed
  • Status changed from new to closed

(In [9060]) Fixed #9113 -- Improved exception message reporting when importing sqlite3 fails.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.