From: Barry Warsaw Date: Tue, 6 Jul 1999 22:00:52 +0000 (+0000) Subject: make_view_popups(): Catch import error which can occur if a viewer is X-Git-Tag: v1.6a1~1098 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=17a8b5d473f8adc6f16046754402bcf6ce4bce20;p=thirdparty%2FPython%2Fcpython.git make_view_popups(): Catch import error which can occur if a viewer is dynamically imported when Pynche is running via askcolor out of a package. If the ImportError occurs, try again, prepending the package name and digging out the module. --- diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py index d8ff8facdb81..4cddff1771e9 100644 --- a/Tools/pynche/PyncheWidget.py +++ b/Tools/pynche/PyncheWidget.py @@ -294,7 +294,13 @@ def make_view_popups(switchboard, root, extrapath): for file in os.listdir(dir): if file[-9:] == 'Viewer.py': name = file[:-3] - module = __import__(name) + try: + module = __import__(name) + except ImportError: + # Pynche is running from inside a package, so get the + # module using the explicit path. + pkg = __import__('pynche.'+name) + module = getattr(pkg, name) if hasattr(module, 'ADDTOVIEW') and module.ADDTOVIEW: # this is an external viewer v = PopupViewer(module, name, switchboard, root)