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(标准库)发送邮件(发送邮件实战)
上次编辑于:
贡献者: 15327360835
Loading...