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()
Though common, the following easy design pattern and its variations are discouraged:
Instead use the Python package manager to check if a libray is available:
More about the topic can be found here
As the comments above point out, Python standard library modules (stdlib) are always available UNLESS you run Python in an embedded environment with stripped down run-time.
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:
You can either extend that to handle the
import ... as ...
andfrom ... import ...
forms or just do the assignments later manually, ie.:You can doing as the following: