我有一個__init__.py
看起來像這樣__all__變量未拿起在__init__.py
__init__.py
:
__all__ = ['cooling', 'counters']
我的目錄結構如下:
example_dir/
__init__.py
cooling.py
power.py
counters.py
當我嘗試import example_dir
,python不會導入cooling
和counters
。它什麼都不輸入。使用Pdb,我發現它讀取__init__.py
,但它拒絕讀取__all__
變量。
我用imp.load_module
加載模塊
我的整個程序:
def import_module(name, path=None):
parts = name.split('.')
module_name = ""
for index, part in enumerate(parts):
module_name = part if index == 0 else '%s.%s' % (module_name, part)
if path is not None:
path = [path]
fh, path, descr = imp.find_module(part, path)
mod = imp.load_module(module_name, fh, path, descr)
return mod
def load_module(name):
try:
mod = None
mod = sys.modules[name]
except KeyError:
mod = import_module(name)
finally:
if not mod:
raise ImportError('unable to import module %s' % name)
return mod
load_module('example_dir')
'__all__'與導入包內的嵌套模塊沒有任何關係。 –