Python模块与包
大约 2 分钟
模块与包
模块
模块是一个包含 Python 定义和语句的文件,文件名就是模块名(去掉 .py 后缀)。
# 引入指定目录中的模块
from modules.fb import fib as fb
# as 重命名
fb(500)
1. 标准模块
# 标准库
import sys
# 标准库
print('当前python版本:', sys.version)
2. dir()函数
dir()函数返回模块、类、实例或任何其他对象的属性列表。
# dir函数:返回sys模块的所有属性列表
print(dir(sys))
3. __name__ 属性
每个模块都有
__name__属性。直接运行该模块文件时,__name__等于'__main__';被其他文件 import 时,__name__等于模块名。常用于在脚本中区分「直接运行」和「被导入」。
# fib.py
def fib(n):
...
if __name__ == "__main__":
# 只有直接执行 python fib.py 时才会运行,被 import 时不执行
fib(100)
包
包是一种用「点式模块名」构造 Python 模块命名空间的方法。简单来说,包就是包含
__init__.py文件的文件夹,用来把一组模块组织在一起。
目录结构示例:
project/
├── modules/
│ ├── __init__.py # 让modules成为包,可以为空文件
│ ├── fb.py # modules.fb
│ └── utils/
│ ├── __init__.py
│ └── string.py # modules.utils.string
└── main.py
# 三种导入方式
import modules.fb # 使用时:modules.fb.fib(100)
from modules import fb # 使用时:fb.fib(100)
from modules.fb import fib as fb # 使用时:fb(100)
第三方包管理(pip)
pip 是 Python 官方的包管理器,用于安装和管理第三方库。Python 3.4 之后的版本都自带 pip。
# 安装最新的包
pip install requests
# 安装指定版本
pip install requests==2.31.0
# 升级包
pip install --upgrade requests
# 卸载包
pip uninstall requests
# 查看已安装的包
pip list
# 导出当前环境的依赖清单
pip freeze > requirements.txt
# 依据清单一键安装(部署项目常用)
pip install -r requirements.txt
# 使用国内镜像源加速下载
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
虚拟环境(venv)
不同项目依赖的包版本可能冲突,虚拟环境可以为每个项目隔离出一套独立的 Python 环境。官方内置的 venv 模块即可创建虚拟环境。
# 在当前目录创建名为 .venv 的虚拟环境
python3 -m venv .venv
# 激活虚拟环境
# macOS / Linux:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# 激活后,pip 安装的包只作用于当前环境
(.venv) pip install requests
# 退出虚拟环境
deactivate
爬虫常用第三方库
| 库 | 用途 |
|---|---|
| requests | 发送 HTTP 请求,获取网页数据(知乎热搜实战) |
| beautifulsoup4 | 解析 HTML,提取页面内容(动态数据实战) |
| playwright | 驱动真实浏览器,爬取 JS 渲染的动态页面 |
| smtplib(标准库) | 发送邮件(发送邮件实战) |
Loading...
