equal
deleted
inserted
replaced
35 sys.path.append(path) |
35 sys.path.append(path) |
36 modname = name |
36 modname = name |
37 try: |
37 try: |
38 obj = __import__(modname) |
38 obj = __import__(modname) |
39 except ImportError: |
39 except ImportError: |
|
40 e1 = sys.exc_type, sys.exc_value, sys.exc_traceback |
40 try: |
41 try: |
41 # extensions are loaded with hgext_ prefix |
42 # extensions are loaded with hgext_ prefix |
42 obj = __import__("hgext_%s" % modname) |
43 obj = __import__("hgext_%s" % modname) |
43 except ImportError: |
44 except ImportError: |
|
45 e2 = sys.exc_type, sys.exc_value, sys.exc_traceback |
|
46 if ui.tracebackflag: |
|
47 ui.warn(_('exception from first failed import attempt:\n')) |
|
48 ui.traceback(e1) |
|
49 if ui.tracebackflag: |
|
50 ui.warn(_('exception from second failed import attempt:\n')) |
|
51 ui.traceback(e2) |
44 raise util.Abort(_('%s hook is invalid ' |
52 raise util.Abort(_('%s hook is invalid ' |
45 '(import of "%s" failed)') % |
53 '(import of "%s" failed)') % |
46 (hname, modname)) |
54 (hname, modname)) |
47 sys.path = oldpaths |
55 sys.path = oldpaths |
48 try: |
56 try: |