Present situation:
I have a script:
program.py
.I have a directory:
/imports
. Which contains an arbitrary amount of modules in subdirectories.Python's package directory syntax is being used.
__init__.py program.py /imports __init__.py /module a __init__.py other_files.py /module b __init__.py other
program.py
should import every subdirectory in/imports
.program.py
needs object access to the modules. For example,imports['name'].Service()
.
The existing code:
import os
modules = []
IMPORT_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'imports')
to_import = [name for name in os.listdir(IMPORT_PATH) if os.path.isdir(os.path.join(IMPORT_PATH, name))]
modules = [__import__('imports.' + x) for x in to_import]
print modules
Output:
[<module 'imports' from '/code/test/imports/__init__.pyc'>, <module 'imports' from '/code/test/imports/__init__.pyc'>]
Desired output:
[<module 'B' from '/code/test/imports/B'>, <module 'C' from '/code/test/imports/C'>]