I know I can use importlib
to import modules via a string. How can I recreate the import *
functionality using this library? Basically, I want some
Here is shorten version for @HaiVu answer which refers to this solution from @Bakuriu
import importlib
#import the module
mod = importlib.import_module('collections')
#make the variable global
globals().update(mod.__dict__)
Note:
This will import lots of things beside the user-defined variables
@HaiVu solution did the best of it ie. only import user-defined variables
Here is a solution: import the module, then one by one make alias in the current namespace:
import importlib
# Import the module
mod = importlib.import_module('collections')
# Determine a list of names to copy to the current name space
names = getattr(mod, '__all__', [n for n in dir(mod) if not n.startswith('_')])
# Copy those names into the current name space
g = globals()
for name in names:
g[name] = getattr(mod, name)