On 06/28/2010 12:06 AM, GrayShark wrote: > I have a large list of package files to import. I'm using a try/except > test to verify the import. Looks like: > > try: > import abc > except ImportError: > print( "Error importing abc" ) > > I've got many of those segments. I want to try and refactor this part > of the code. > > Trying: > for mod in ['ab', 'cd', 'ef' ]: > try: > mod = __import__( mod ) > except ImportError: > print( "Error importing %" % mod ) > > This of course doesn't work. The module ab get's assign in the application > as mod. > > Tried: > for mod in ['ab', 'cd', 'ef' ]: > ('%s' % mod ) = __import__( mod ) > > Still no joy. > > I need a way to deference the the string in mod to be just a variable. > > Any suggestions?
(1) Don't. If you need the module, there's no reason to check for exceptions. Just let the ImportError propagate. Okay, maybe you don't actually need the module - then why do you have to import it in the first place? (2) globals()[mod] = __import__(mod) (3) Why not try: import x import y import z except ImportError as exc: display_error_properly(exc) raise exc -- Thomas -- http://mail.python.org/mailman/listinfo/python-list