为了能够使得上述添加的模块被 发现,需要先将该模块添加到主命名空间(main namespace)。
修改 文件来导入该模块。
新的被定义的模块应该被导入到 中,这样注册表才会发现新的模块并添加它:
from .my_optimizer import MyOptimizer
在配置文件中使用 来手动添加该模块
custom_imports = dict(imports=['mmrotate.core.optimizer.my_optimizer'], allow_failed_imports=False)
模块将会在程序开始被导入,并且 类将会自动注册。 需要注意只有包含 类的包 (package) 应当被导入。 而 不能 被直接导入。
事实上,在这种导入方式下用户可以用完全不同的文件夹结构,只要这一模块的根目录已经被添加到 里面。