Code

Opened 4 years ago

Closed 4 years ago

#12300 closed (duplicate)

Catching exceptions and printing messages without file name and line number

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

Description

Hello!

Lately I had a typo in app name in INSTALLED_APPS. What I get from django when trying to run manage.py shell, test etc. was:

$ python manage.py shell 
Error: No module named name_with_typo

Like you see this message just suggest, that importing were wrong, because module is not accessible.
If my module name was really "name_with_typo" I would find it very fast, but my name was "model", so browsing sources to find the reason was a bit exhausting.
I start debugger and find that exception was catched here:

# django/core/management/base.py:205
        """
        # Switch to English, because django-admin.py creates database content
        # like permissions, and those shouldn't contain any translations.
        # But only do this if we can assume we have a working settings file,
        # because django.utils.translation requires settings.
        if self.can_import_settings:
            try:
                from django.utils import translation
                translation.activate('en-us')
            except ImportError, e:
                # If settings should be available, but aren't,
                # raise the error and quit.
                sys.stderr.write(self.style.ERROR(str('Error: %s\n' % e)))
                sys.exit(1)

Exception was raised during

translation.activate('en-us')

As you see it's not much intuitive...

Why not to make error message more verbose?
It would save our time.

PS.
Such "error handling" is used in many places of Django.

Cheers!

Attachments (0)

Change History (1)

comment:1 Changed 4 years ago by ariddell

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to duplicate
  • Status changed from new to closed

There's a patch for this problem in 11667

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.