Python模块与包以及工程文件管理
PyCharm 文件夹标记与 Python 模块/包/文件的调用
1. PyCharm 文件夹标记
蓝色文件夹(Source Root)
- 代表源码文件夹,告诉解释器这里是源码。
- 蓝色文件夹会被自动添加到
sys.path
,解释器会优先从这些文件夹中查找模块和包。 - 如果不标记为蓝色,可能导致模块或包无法正常导入。
红色文件夹(Excluded Root)
- 表示排除目录,Python 解释器和 PyCharm 都会忽略这些文件夹。
- 通常用于排除虚拟环境目录、日志文件夹、缓存文件夹(如
__pycache__
)、中间生成文件等。 - 有助于优化项目性能,防止无关文件干扰项目运行。
橙色文件夹(Resource Root)
- 用于存放非 Python 文件的资源目录(如图片、HTML 模板、配置文件等)。
- PyCharm 会将其标记为资源路径,方便通过代码引用这些文件。
- 程序运行时不会自动加载这些文件,只有显式调用时才会加载。
2. 模块与包
模块
- Python 中最小的组织单元,一个
*.py
文件就是一个模块。 - 模块可以包含函数、类、变量,也可以直接运行。
示例:
# module.py
def hello():print("Hello, world!")
包
- 包是包含多个模块的文件夹,必须包含一个特殊文件
__init__.py
。 - 包可以嵌套包,形成层级结构,便于管理复杂项目。
示例:
package/
├── __init__.py
├── module1.py
└── module2.py
3. 调用包、模块、文件
绝对导入
- 从项目根目录开始导入。
import package.module1
相对导入
- 从当前模块的相对路径导入。
from . import module2
📌 如果模块不在
Source Root
中,必须使用相对导入,否则会导入失败。
简言之,就是Python最小的结构是模块,基本就是一个Python文件。包的话是多个模块的集合,可以理解成类似一整个文件夹,但是Python不能直接调文件夹,需要在文件夹加上__init__.py
文件(哪怕是空的)才能告诉解释器这是个包,当作包来调。
总结下来就是
1 蓝色文件夹告诉解释器是源码路径,支持模块和包的加载。
2 红色文件夹排除无关文件,优化性能,防止污染模块路径。
3 模块是单个文件,包是模块集合,init.py 必不可少。
4 绝对导入从根目录开始,相对导入从当前模块路径开始。