Python包内模块导入报错ModuleNotFoundError求助
解决模块导入错误:ModuleNotFoundError: No module named 'module'
问题出在package/someClass.py的导入语句上。当你运行program.py时,Python的模块搜索路径(sys.path)是program.py所在的根目录,此时直接写import module as m会让Python在根目录下找module.py,而不是package子目录里的,所以触发找不到模块的错误。
有两种简单的修复方式:
方式一:相对导入(同包内推荐使用)
修改package/someClass.py的导入语句为相对导入,用.表示当前包目录:
# package/someClass.py from . import module as m class SomeClass: def __init__(self): self.a = m.add(1,1)
或者更直接地导入add函数:
# package/someClass.py from .module import add class SomeClass: def __init__(self): self.a = add(1,1)
方式二:绝对导入
直接通过包名来指定要导入的模块,确保Python能准确定位到package下的module:
# package/someClass.py from package import module as m class SomeClass: def __init__(self): self.a = m.add(1,1)
修改后运行program.py,就能正常输出2了。
内容的提问来源于stack exchange,提问作者Simon Schey
相关产品推荐
相关产品推荐

