请考虑以下程序包结构:
.
├── module
│ ├── __init__.py
│ └── submodule
│ ├── attribute.py
│ ├── data.txt
│ └── __init__.py
└── test.py
以及以下代码:
import pkgutil
data = pkgutil.get_data('module.submodule','data.txt')
import module.submodule.attribute
retval = module.submodule.attribute.hello()
运行此命令将引发错误:
Traceback (most recent call last):
File "test.py",line 7,in <module>
retval = module.submodule.attribute.hello()
AttributeError: module 'module' has no attribute 'submodule'
但是,如果运行以下命令:
import pkgutil
import module.submodule.attribute
data = pkgutil.get_data('module.submodule','data.txt')
retval = module.submodule.attribute.hello()
或
import pkgutil
import module.submodule.attribute
retval = module.submodule.attribute.hello()
它工作正常。
为什么运行pkgutil.get_data
会中断以后的导入?