遇ModuleNotFoundError报错,求指导跨文件调用类__init__方法
解决ModuleNotFoundError: No module named 'Exception'及调用类__init__方法的问题
报错信息
ModuleNotFoundError: No module named 'Exception'
相关代码
HelperUtils/CommonAutomationFunction_Util.py
import pywinauto class CommonAutoLib(): """ """ _logger = None _autoWait = None _yamlContent = None def __init__(self): super().__init__() self._logger = super()._init_logger() self._CommonGUILocators = self.loadAndReturnYAMLFile('GUILocators/CommonGUILocators.yaml')
LoadProfile.py
from HelperUtils.CommonAutomationFunction_Util import CommonAutoLib CommonGUILocators = CommonAutoLib().loadAndReturnYAMLFile('GUILocators/CommonGUILocators.yaml')
问题分析与解决方案
处理ModuleNotFoundError
Exception是Python内置异常类,不需要导入。出现该错误,说明你的代码(大概率是CommonAutoLib继承的父类、或loadAndReturnYAMLFile方法内部)存在错误的import Exception语句,找到并删除该导入即可。- 另外,当前
CommonAutoLib未显式继承任何类,但__init__中调用了super().__init__()和super()._init_logger(),这说明该类应当继承项目内的某个基础类(比如包含日志初始化逻辑的基类),请确保父类已正确导入且路径无误。
正确调用__init__并获取目标属性
- 类实例化时,
__init__方法会自动执行。你当前实例化CommonAutoLib()时,__init__已经运行,且内部已调用loadAndReturnYAMLFile并将结果赋值给self._CommonGUILocators。 - 修改
LoadProfile.py,直接从实例中获取初始化完成的属性即可:from HelperUtils.CommonAutomationFunction_Util import CommonAutoLib # 实例化时自动执行__init__完成初始化 auto_lib = CommonAutoLib() # 直接获取已初始化的CommonGUILocators CommonGUILocators = auto_lib._CommonGUILocators - 若确实需要单独调用
loadAndReturnYAMLFile,请先确保类的继承关系正确,避免super()调用报错。
- 类实例化时,
补充:修复CommonAutoLib的继承问题
- 如果
CommonAutoLib需要继承某个父类(比如BaseAutoLib),请显式声明继承关系:import pywinauto # 导入父类,确保路径正确 from HelperUtils.BaseAutoLib import BaseAutoLib class CommonAutoLib(BaseAutoLib): _logger = None _autoWait = None _yamlContent = None def __init__(self): super().__init__() self._logger = super()._init_logger() self._CommonGUILocators = self.loadAndReturnYAMLFile('GUILocators/CommonGUILocators.yaml')
- 如果
内容的提问来源于stack exchange,提问作者srikanth
相关产品推荐
相关产品推荐

