pip 和 venv
在开始之前,你必须了解两个最重要的工具:

-
pip(Python Package Installer):- 作用:Python 的官方包安装器,它从 Python Package Index (PyPI) 这个全球最大的 Python 软件仓库下载并安装第三方库。
- 类比:就像 Linux 里的
apt(Debian/Ubuntu) 或yum/dnf(CentOS/RHEL)。
-
venv(Virtual Environment):- 作用:创建一个独立的、隔离的 Python 环境,在这个环境中,你可以安装特定版本的库,而不会影响到系统全局的 Python 环境或其他项目。
- 为什么重要:避免“依赖地狱”(Dependency Hell),项目 A 需要
requests==2.25.0,而项目 B 需要requests==2.28.0,使用虚拟环境可以完美解决这个问题。 - 最佳实践:永远在虚拟环境中进行项目开发和安装。
第一步:检查 Python 和 pip 是否已安装
在安装任何模块之前,先确认你的系统环境。
检查 Python 版本
打开你的终端(Terminal),输入以下命令:

python3 --version
或者
python --version
- 如果看到版本号(如
Python 3.10.6),说明 Python 已安装,推荐使用python3命令,因为很多 Linux 系统同时安装了 Python 2 和 Python 3。 - 如果提示
command not found,说明 Python 未安装,你需要先安装它。
检查 pip 是否已安装
同样在终端输入:
pip3 --version
或者
pip --version
- 如果看到版本信息(如
pip 23.0.1 from /usr/lib/python3.10/site-packages/pip (python 3.10)),说明pip已安装。 - 如果提示
command not found,说明pip未安装,你需要先安装它。
第二步:安装 Python 和 pip(如果未安装)
根据你的 Linux 发行版,使用对应的包管理器进行安装。

对于 Debian / Ubuntu / Mint 系统
# 更新软件包列表 sudo apt update # 安装 Python 3 和 pip sudo apt install python3 python3-pip python3-venv
python3: Python 3 解释器。python3-pip: pip 安装程序。python3-venv: 用于创建虚拟环境的模块。
对于 CentOS / RHEL / Fedora 系统
# 对于 CentOS/RHEL 7/8, 可能需要先安装 EPEL 仓库 sudo yum install epel-release # 安装 Python 3 和 pip sudo yum install python3 python3-pip
- 在较新的版本(如 Fedora 28+ 或 CentOS 8+)中,
python3-venv通常会作为python3的依赖自动安装,如果没有,可以手动安装:sudo yum install python3-venv。
对于 Arch Linux 系统
sudo pacman -S python python-pip
- 在 Arch 上,
venv模块是 Python 标准库的一部分,无需单独安装。
第三步:安装 Python 模块(核心操作)
你已经准备好了 pip,我们来学习如何安装模块。
直接安装(不推荐,仅用于全局工具)
这种方法会将模块安装到系统全局的 Python 环境中。不推荐用于项目开发,因为容易造成版本冲突。
# 安装最新版本的模块 pip3 install <模块名> # 示例:安装 requests 库 pip3 install requests # 安装特定版本的模块 pip3 install <模块名>==<版本号> # 示例:安装 Django 4.1 版本 pip3 install django==4.1.7 # 从 `requirements.txt` 文件安装所有依赖 # 这个文件通常包含项目所需的所有库及其版本号 pip3 install -r requirements.txt
在虚拟环境中安装(强烈推荐)
这是专业开发的标准流程。
创建项目目录和虚拟环境
# 1. 创建一个项目文件夹 mkdir my-awesome-project cd my-awesome-project # 2. 在项目文件夹内创建一个名为 venv 的虚拟环境 # `python3 -m venv venv` 是最推荐、最标准的命令 python3 -m venv venv
执行后,你的项目目录下会出现一个 venv 文件夹,它包含了独立的 Python 解释器和 pip。
激活虚拟环境
source venv/bin/activate
激活后,你会发现终端提示符前面多了 (venv) 字样,这表示你当前正在虚拟环境中工作。
在虚拟环境中安装模块
所有 pip 命令都只会作用于这个虚拟环境。
# 激活后,可以直接使用 pip (而不是 pip3) pip install <模块名> # 示例:安装 numpy 和 pandas pip install numpy pandas # 你可以检查安装的包 pip list # 会看到类似: # Package Version # ---------- ------- # numpy 1.24.3 # pandas 2.0.1
退出虚拟环境
当你完成工作后,输入以下命令退出虚拟环境:
deactivate
终端提示符前的 (venv) 会消失。
第四步:管理和升级模块
升级已安装的模块
pip install --upgrade <模块名> # 示例:升级 requests 到最新版本 pip install --upgrade requests
卸载模块
pip uninstall <模块名> # 示例:卸载不再需要的 pandas pip uninstall pandas
生成依赖清单(requirements.txt)
当你完成项目开发后,需要将所有依赖的库及其版本号保存到一个文件中,方便别人或部署时使用。
# 确保你在激活的虚拟环境中执行此命令 pip freeze > requirements.txt
这会在当前目录下生成一个 requirements.txt 文件,内容类似:
numpy==1.24.3
pandas==2.0.1
requests==2.28.2
其他开发者拿到你的项目后,只需要:
# 1. 创建并激活虚拟环境 python3 -m venv venv source venv/bin/activate # 2. 安装 requirements.txt 中的所有依赖 pip install -r requirements.txt
就能完美复现你的开发环境。
常见问题与解决方案
问题 1:pip 权限错误(Permission denied)
错误信息可能类似:ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied
原因:尝试用 pip 将模块安装到系统全局目录(如 /usr/local/lib/),这需要 root 权限。
解决方案:
- 最佳实践:始终使用虚拟环境,从根源上避免此问题。
- 临时方案(不推荐):如果确实需要全局安装,可以使用
sudo,但这有风险,可能破坏系统 Python 环境。sudo pip3 install <模块名>
问题 2:ModuleNotFoundError: No module named '...'
原因:
- 你忘记激活虚拟环境了。
- 你在虚拟环境中安装了模块,但尝试在虚拟环境外运行代码。
- 你安装了模块,但拼写错误或大小写不正确。
解决方案:
- 激活虚拟环境:运行
source venv/bin/activate。 - 检查安装:激活后,用
pip list确认模块是否在列表中。 - 检查拼写:确保代码中
import的模块名和安装的模块名完全一致。
问题 3:pip 命令找不到,但 pip3 可以
原因:你的系统只安装了 pip3,而没有创建 pip 的符号链接。
解决方案:
- 使用
pip3代替pip,这是最简单的方法。 - 创建一个软链接(需要
sudo权限):sudo ln -s /usr/bin/pip3 /usr/bin/pip
总结与最佳实践
| 操作 | 命令 | 说明 |
|---|---|---|
| 检查版本 | python3 --version / pip3 --version |
确认环境是否就绪 |
| 创建虚拟环境 | python3 -m venv my-project-env |
在项目目录下创建隔离环境 |
| 激活虚拟环境 | source my-project-env/bin/activate |
开始工作前必做 |
| 安装模块 | pip install <module_name> |
在激活的虚拟环境中安装 |
| 生成依赖 | pip freeze > requirements.txt |
导出当前环境的所有依赖 |
| 安装依赖 | pip install -r requirements.txt |
根据文件安装所有依赖 |
| 退出虚拟环境 | deactivate |
工作结束后必做 |
| 升级模块 | pip install --upgrade <module_name> |
保持模块更新 |
记住这个黄金法则:永远在虚拟环境中为你的项目安装模块,这会让你的 Python 开发之路更加顺畅和高效。
