Skip to content

Python 模块

在 Python 中,模块(module)通常对应一个 .py 文件:文件里的函数、类、变量在导入后可通过模块命名空间使用。标准库(如 mathos)和第三方库(如 numpy)都以模块(或模块集合)形式提供。

把代码拆成多个模块,有利于复用命名空间划分维护。更复杂的目录组织见 包导入;脚本入口习惯见 main 函数示例

解释器如何找到模块?

导入时,Python 会在 sys.path 给出的一串目录里查找模块(含内置已加载等机制)。常见来源包括:

  • 当前脚本所在目录(与启动方式有关)
  • PYTHONPATH 环境变量中的目录
  • 标准库目录、site-packages(第三方包)等

需要排查路径时可在程序里 import sys; print(sys.path)

importfrom … import …

python
import math

print(math.sqrt(121))
print(math.pi)

只导入模块名时,要通过 模块名.属性 访问。

python
from math import sqrt, pi

print(sqrt(121))
print(pi)

可从模块中按需导入名字(注意命名冲突)。

查看模块里有哪些名字

内置函数 dir(obj) 可列出对象的属性名;对模块常用 dir(math)help(math) 可查看说明文档。

在交互环境里也可输入 help("modules") 浏览可用模块名列表(输出可能很长,且与环境有关)。

用 pip 安装第三方模块

PyPI 上的包一般用 pip 安装(需已配置好 Python 环境):

bash
python -m pip install 包名

示例:

bash
python -m pip install numpy

使用 Conda 时可用:

bash
conda install numpy

Debian/Ubuntu 等系统上,也可用发行版提供的包,例如:

bash
sudo apt install python3-numpy

(具体包名因发行版而异。)

模块中的变量

模块顶层定义的变量、字典等,在 import 模块名 后通过 模块名.名字 访问。

将下面内容保存为 fruit_config.py(文件名用小写、与 标识符 规范一致,避免跨平台大小写问题):

python
Fruit = {
    "name": "Apple",
    "color": "Green",
}

另一文件中:

python
import fruit_config

print(fruit_config.Fruit["name"])

输出:

text
Apple

模块与包的区别(简表)

模块
常见形态单个 .py 文件(或扩展模块)__init__.py 的目录(Python 3.3+ 可用命名空间包__init__.py 可选,进阶话题)
导入import mymoduleimport mypackage.submodule

详见 包导入

小结

  • 模块是代码组织单位,通常对应 .py 文件;用 import / from 使用。
  • 查找路径由 sys.path 等决定;第三方库多用 pip 安装。
  • 是包含子模块的目录结构,与模块配合使用。

参考