Module 01 · Python Coding Practices and Packaging Concepts
Packaging打包
观看此视频后,您将能够:
- 区分 Python 模块、包和库。
- 创建 Python 包。
- 验证 Python 包。
- 使用 Python 包。
1. 模块、包和库的区别
模块 (Module)、包 (Package) 和库 (Library) 是 Python 中经常使用的术语。
Python 模块 (Module)
- 定义: 一个 Python 模块是包含 Python 定义、语句、函数和类的
.py** 文件**。 - 作用: 可以将模块导入到其他脚本或 Notebook 中使用。
- 示例:
module.py文件中包含square(number)和doubler(number)两个函数。

Python# module.py 示例 def square(number): return number ** 2 # 计算平方 def doubler(number): return number * 2 # 计算双倍值 - 使用: 如果模块在同一目录下,可以直接导入并使用其中的函数。
- 示例: 导入后,
print(square(4))的输出为 16;print(doubler(4))的输出为 8。
- 示例: 导入后,
Python 包 (Package)
- 定义: 包是将 Python 模块集合到一个目录中,该目录中必须包含一个
__init__.py** 文件**。这个文件将它与普通的脚本目录区分开来。 - 示例:
my_project是一个包,它包含module1.py、module2.py模块以及一个__init__.py文件。

- 导入类型: 当您导入模块或包时,Python 创建的相应对象总是
module类型。 - 区分: 模块和包的区别仅存在于文件系统级别。
Python 库 (Library)
- 定义: 一个库是一个包的集合,或者它也可以是单个包。
- 示例: NumPy、PyTorch 和 Pandas 等。
- 注意: 在实践中,包 (Package) 和库 (Library) 这两个术语经常互换使用。因此,NumPy、PyTorch 和 Pandas 也常被称为包。
2. 创建 Python 包的步骤
假设有两个模块:module1.py(包含 square 和 doubler 函数)和 module2.py(包含 mean 函数)。要将 my_project 文件夹变成一个包,必须遵循以下步骤:
- 创建文件夹: 创建一个以包命名的文件夹(例如
my_project)。 - 创建
__init__.py文件: 在该文件夹内创建一个空的__init__.py文件。 - 创建所需模块: 在该文件夹内创建所需的模块文件(例如
module1.py和module2.py)。 - 编辑
__init__.py文件: 在__init__.py文件中,添加代码以引用包中需要的模块。
Python
# my_project/__init__.py 的内容
from . import module1
from . import module2

3. 验证 Python 包
创建包后,您需要验证它是否成功加载:
- 打开 Bash 终端: 确保终端目录与您的包文件夹位于同一父目录下。
- 打开 Python 解释器: 在 shell 中运行命令
python。 - 导入包: 在 Python 提示符下,键入
import后面跟包的名称。
- 示例:
import my_project
- 验证: 如果命令运行没有错误,则表明包已成功加载。
测试结构: 验证包中函数的一般结构是:package_name.module_name.function_name(parameters)。
- 示例: 使用包中的函数:
Python>>> my_project.module1.square(2) 4

4. 使用 Python 包
如果包文件夹位于同一父目录中,您可以在其他脚本中使用它。
- 示例: 在父目录下的
test.py文件中,您可以导入并使用包中的函数:
Python
# test.py 内容
# 从 my_project 包的 module1 导入 square 和 doubler
from my_project.module1 import square, doubler
# 从 my_project 包的 module2 导入 mean
from my_project.module2 import mean
# 使用并打印函数结果
print(f"Square of 4: {square(4)}") # 输出 16
print(f"Doubler of 4: {doubler(4)}") # 输出 8
print(f"Mean of (2, 1, 3): {mean(2, 1, 3)}") # 假设 mean(a, b, c) 返回 (a+b+c)/3
您可以运行 test.py 文件,并检查是否得到了正确的结果。

