Python重载自定义函数报错:ImportError: module Classifier not in sys.modules
解决Python重载自定义模块时的ImportError问题
reload()函数的参数必须是已导入的模块对象,而非从模块中导入的类、函数或其他成员。你之前的写法直接导入了Classifier类并将其别名为foo,传入reload()的是类对象而非模块,因此触发ImportError。
正确操作步骤:
- 先导入整个目标模块
from importlib import reload import FilterFile - 按需导入模块内的类(可选,也可直接通过模块访问)
from FilterFile import Classifier as foo - 修改
FilterFile.py后,对整个模块执行重载,若需要更新别名指向的类,重新导入一次即可reload(FilterFile) # 重新导入类,让别名foo关联更新后的版本 from FilterFile import Classifier as foo
常见错误说明:
- 传入
reload(foo)或reload(Classifier):这两个都是类对象,不符合reload()对模块对象的要求 - 传入
reload(FilterFile import Classifier):语法错误,reload()仅接受单个模块对象参数
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

