PyQt5项目导入报错:ModuleNotFoundError: No module named 'qt_py'及解决方案咨询
报错原因
运行app.py时,Python的模块搜索根目录是simulation_proj。main_window.py里的from qt_py.simulation_window import SimulationWindow试图把qt_py当作顶层模块导入,但实际上qt_py是gui的子模块,Python找不到这个顶层模块,所以触发ModuleNotFoundError。
最佳导入语句管理方案
针对这个项目结构,有两种可靠的解决方式:
1. 绝对导入(推荐)
直接使用从项目根目录出发的完整模块路径,清晰且不易出错。修改main_window.py的导入语句:
# main_window.py from PyQt5.QtWidgets import QMainWindow from PyQt5.uic import loadUi # 替换原导入语句 from gui.qt_py.simulation_window import SimulationWindow
2. 相对导入
利用模块间的目录关系,用相对路径导入同目录下的模块。修改main_window.py的导入语句:
# main_window.py from PyQt5.QtWidgets import QMainWindow from PyQt5.uic import loadUi # 替换原导入语句,. 表示当前所在的qt_py目录 from .simulation_window import SimulationWindow
两种方式任选其一,修改后直接运行app.py即可正常加载模块。
内容的提问来源于stack exchange,提问作者cosLatte
相关产品推荐
相关产品推荐

