Python 模块
在 Python 中,模块(module)通常对应一个 .py 文件:文件里的函数、类、变量在导入后可通过模块命名空间使用。标准库(如 math、os)和第三方库(如 numpy)都以模块(或模块集合)形式提供。
把代码拆成多个模块,有利于复用、命名空间划分和维护。更复杂的目录组织见 包导入;脚本入口习惯见 main 函数示例。
解释器如何找到模块?
导入时,Python 会在 sys.path 给出的一串目录里查找模块(含内置与已加载等机制)。常见来源包括:
- 当前脚本所在目录(与启动方式有关)
PYTHONPATH环境变量中的目录- 标准库目录、
site-packages(第三方包)等
需要排查路径时可在程序里 import sys; print(sys.path)。
import 与 from … 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 mymodule | import mypackage.submodule |
详见 包导入。
小结
- 模块是代码组织单位,通常对应
.py文件;用import/from使用。 - 查找路径由
sys.path等决定;第三方库多用 pip 安装。 - 包是包含子模块的目录结构,与模块配合使用。