模块、包与虚拟环境
模块、包与虚拟环境
模块
一个 .py 文件就是一个模块。
1 | # math_tools.py |
1 | # main.py |
包
包是包含 Python 模块的文件夹,通常包含 __init__.py。
1 | my_project/ |
导入方式
1 | import pathlib |
建议:
- 标准库导入放上面。
- 第三方库导入放中间。
- 本项目导入放下面。
- 避免
from module import *。
__name__ == "__main__"
1 | def main(): |
作用:
- 直接运行文件时执行
main()。 - 被别的文件导入时不自动执行。
虚拟环境
虚拟环境用于隔离项目依赖。
1 | python -m venv .venv |
退出:
1 | deactivate |
依赖记录
简单项目可以用:
1 | python -m pip freeze > requirements.txt |
现代项目常见核心文件:
pyproject.tomlREADME.mdsrc/tests/.gitignore
导入路径常见问题
常见原因:
- 当前工作目录不是项目根目录。
- 文件名和标准库重名。
- 包没有正确安装。
- 试图用相对导入运行单个包内文件。
排查方式:
1 | import sys |
好习惯
- 每个项目一个虚拟环境。
- 不把
.venv提交到 Git。 - 不在全局 Python 环境里乱装包。
- 把脚本入口集中在
main()。 - 项目复杂后使用
pyproject.toml管理配置。
练习
- 创建一个包
calculator,包含加减乘除模块。 - 创建虚拟环境并安装一个第三方库。
- 写一个
main.py调用包内函数。 - 故意制造一次导入错误,并记录解决过程。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Kalax524!