第5章 模块包与工程环境


第 5 章 · 模块包与工程环境

章节摘要:模块是 Python 组织代码的基本单位,也是"名字查找故事"的最大容器——模块即对象、即命名空间。本章讲导入系统的搜索路径、执行语义、循环导入的成因与解法;再讲虚拟环境与依赖管理,把"代码能跑"升级为"项目可交付"。

学习目标

阅读完本章,你应当能够:

  1. 说出 import 语句的三个阶段(查找、加载、绑定)与 sys.modules 缓存的角色;
  2. 区分模块、包、命名空间包,理解 __name__ == "__main__" 的准确含义;
  3. 诊断并修复循环导入,说明其与"模块只执行一次"语义的因果关系;
  4. 用 venv 建虚拟环境、用 pip 装依赖、用 requirements 与 pyproject 锁定版本;
  5. 判断一个依赖该装全局、项目还是开发依赖。

核心概念速览

import 不只是"引入",它是"查找—执行—缓存—绑定"四连;理解它,一半的"装了却导入不了"问题当场消解。

子章节导航

5.1 模块与包的导入机制

import 的完整语义、包的 __init__ 与相对导入、循环导入诊断。

5.2 虚拟环境与依赖管理

venv/pip/pyproject 的三层体系,依赖解析与版本锁定,为什么"永远别用系统 Python 装包"。

子章节之间的逻辑关系

5.1 讲解释器如何"找到并装填"模块,5.2 讲第三方包从哪来、装到哪、如何隔离。前者是运行时机制,后者是工程基础设施,合起来构成可交付项目的完整拼图。

前置知识与后续延伸

  • 前置:第 1 章名字绑定(模块是命名空间的最后一块拼图)、第 3 章 LEGB 的 G 层。
    提醒一个实践建议:学完本章就把手头项目"环境化"——建一个 .venv、写一份 pyproject、把依赖锁住。这套动作二十分钟就能完成,却能把"在我机器上是好的"这类对话从你的职业生涯里永久删除。机制懂了,习惯跟上,工程化的门槛就跨过去了。

  • 为后续铺垫:第 9 章 Web 框架与数据分析库的安装、脚本入口设计(__main__)、测试组织(tests 包)都依赖本章。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U