一、背景
1 问题描述
在我的项目中,utils包下创建了一个service.py文件,用来启动服务。
service.py文件中的方法引用了其他模块,而包名也叫“service”,导致这部分的引用报错,提示“ModuleNotFoundError”。
报错如下图:
2 包、模块与文件
这个问题中,一会儿包名(package),一会儿模块(module),一会儿文件(.py后缀的等),概念十分混淆。
2.1 Package包
在我上述截图中,controller、dao等都属于package包。
特点:
- 包下面一定有一个__init__.py文件,用于程序初始化(可以写入内容,也可以不写);
- 导包引入模块时,写法为:from package名.文件名 import 具体函数or类;
从Pycharm创建入口看:
它创建的就是一个“Python Package”。
2.2 Module模块
官方定义:一个.py文件就可以被看做是一个module模块。
两种引用方式:
- import 模块名