I would like to import bunch of libraries and catch the exception.
If I have only 1 try catch block I get 1 exception (the first one). Is there a pattern to iterate over all of the libs and have a separate exception for each individual missing lib?
#!/usr/bin/env python
try: import sys
except: print sys.exc_info()
try: import numpy as np
except: print sys.exc_info()
try: import scipy as sp
except: print sys.exc_info()
try: import os as os
except: print sys.exc_info()
try: from operator import itemgetter
except: print sys.exc_info()
try: import socket
except: print sys.exc_info()
try: import logging
except: print sys.exc_info()
try: from time import gmtime, strftime
except: print sys.exc_info()
You can use __import__
to dynamically import modules, allowing you to - among other things - import modules by iterating a list with their names.
For example:
libnames = ['numpy', 'scipy', 'operator']
for libname in libnames:
try:
lib = __import__(libname)
except:
print(sys.exc_info())
else:
globals()[libname] = lib
You can either extend that to handle the import ... as ...
and from ... import ...
forms or just do the assignments later manually, ie.:
np = numpy
sp = scipy
itemgetter = operator.itemgetter