diff --git a/django/template/__init__.py b/django/template/__init__.py
|
a
|
b
|
|
| 50 | 50 | """ |
| 51 | 51 | import imp |
| 52 | 52 | import re |
| | 53 | import sys |
| 53 | 54 | from inspect import getargspec |
| 54 | 55 | |
| 55 | 56 | from django.conf import settings |
| … |
… |
|
| 982 | 983 | """ |
| 983 | 984 | # We need to be able to tell the difference between a tag library that |
| 984 | 985 | # doesn't exist, and a tag library with errors in it. |
| 985 | | # find_module() finds, but doesn't actually load the module requested. |
| 986 | | # If it raises ImportError, it means the module doesn't exist. |
| 987 | | # If you then use load_module(), any ImportError is guaranteed to be |
| 988 | | # an actual import problem with the module. |
| 989 | 986 | app_path, taglib = taglib_module.rsplit('.',1) |
| 990 | 987 | app_module = import_module(app_path) |
| 991 | 988 | try: |
| 992 | | imp.find_module(taglib, app_module.__path__) |
| 993 | | except ImportError,e: |
| 994 | | return None |
| 995 | | mod = import_module(taglib_module) |
| | 989 | mod = import_module(taglib_module) |
| | 990 | except ImportError: |
| | 991 | # imp.find_module() can tell us if a module exists by raising |
| | 992 | # ImportError without loading it. |
| | 993 | # Problem is it isn't compatible with templatetag libraries contained |
| | 994 | # inside eggs so we need to investigate things further if it fails |
| | 995 | # making sure to use a custom loaders if it is present. |
| | 996 | importer = sys.path_importer_cache.get(app_module.__path__[0], None) or imp |
| | 997 | try: |
| | 998 | if importer.find_module(taglib, app_module.__path__) is not None: |
| | 999 | # It is guaranteed to be an actual import problem with the module. |
| | 1000 | raise |
| | 1001 | except ImportError: |
| | 1002 | # The module doesn't exist. |
| | 1003 | return None |
| 996 | 1004 | try: |
| 997 | 1005 | return mod.register |
| 998 | 1006 | except AttributeError: |