核心摘要:你应该用哪个工具?
| 场景 | 推荐工具 | 命令示例 |
|---|---|---|
| 个人项目、快速安装 | pip (Python 包安装器) |
pip install requests |
| 系统级 Python (如 CentOS 7) | pip |
pip install --user numpy |
| 项目级依赖管理 (强烈推荐) | pip + requirements.txt |
pip install -r requirements.txt |
| 创建虚拟环境 | venv (Python 内置) |
python3 -m venv myenv |
| 系统级/全局依赖 (不推荐) | apt (Debian/Ubuntu) |
sudo apt install python3-numpy |
准备工作:确认你的 Python 环境
在安装任何模块之前,最重要的一步是确认你正在使用哪个 Python 解释器,因为 Linux 系统通常自带 Python 2 和 Python 3,而我们现在几乎都使用 Python 3。
打开终端,运行以下命令:
# 检查 Python 3 是否已安装 python3 --version # 检查 pip 是否已安装 (pip 是 Python 的包安装器) pip3 --version
输出示例:
$ python3 --version
Python 3.10.6
$ pip3 --version
pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.10)
pip3 没有安装,你可以通过系统的包管理器来安装,对于 Debian/Ubuntu 系统:
# 更新软件包列表 sudo apt update # 安装 pip3 sudo apt install python3-pip
对于 CentOS/RHEL/Fedora 系统:
# 首先安装 EPEL 仓库 sudo dnf install epel-release # 然后安装 pip3 sudo dnf install python3-pip
安装 Python 模块的核心方法:pip
pip 是 Python 官方推荐的包管理工具,绝大多数 Python 模块都可以通过 pip 安装。
基本安装命令
# 安装一个模块 pip3 install <模块名> # 示例:安装著名的 requests 库 pip3 install requests
安装特定版本
如果你需要安装某个模块的特定版本(为了兼容旧项目):
# 安装 requests 的 2.25.1 版本 pip3 install requests==2.25.1
升级已安装的模块
# 升级 requests 到最新版本 pip3 install --upgrade requests
卸载模块
# 卸载 requests pip3 uninstall requests
关键概念:虚拟环境
这是 Python 开发中最重要、最推荐的实践。永远不要在系统全局环境中安装你的项目依赖!
为什么需要虚拟环境?
- 项目隔离:每个项目可能有不同的依赖版本,虚拟环境可以为每个项目创建一个独立的“沙盒”,避免版本冲突。
- 保持系统干净:避免将大量第三方库污染到系统级的 Python 环境中。
- 可复现性:可以轻松地导出项目的所有依赖,以便在其他机器上重现完全相同的环境。
如何使用 venv 创建和使用虚拟环境
venv 是 Python 3.3+ 自带的模块,无需额外安装。
步骤 1:创建虚拟环境
在你的项目根目录下,运行:
# 创建一个名为 'venv' 的虚拟环境文件夹 python3 -m venv venv
执行后,你会看到当前目录下多了一个 venv 文件夹,里面包含了独立的 Python 解释器和 pip。
步骤 2:激活虚拟环境
在使用虚拟环境之前,必须先“激活”它。
# 在 Bash 或 Zsh shell 中 source venv/bin/activate
激活后,你的终端提示符前面会出现 (venv) 字样,表示你已在这个虚拟环境中了。
(venv) your_username@your_machine:~/your_project$
步骤 3:在虚拟环境中安装模块
你使用 pip 安装的任何模块都会被安装到 venv 文件夹内,而不会影响系统全局环境。
# (venv) 提示符下 pip install django pip install pandas
步骤 4:退出虚拟环境
当你完成工作后,只需运行以下命令即可退出:
deactivate
终端提示符会恢复原样。
最佳实践:requirements.txt
当你在一个项目中安装了很多依赖后,如何告诉别人(或者未来的自己)这个项目需要哪些库以及它们的版本呢?答案是 requirements.txt 文件。
生成 requirements.txt
在激活了虚拟环境后,运行以下命令,pip 会自动扫描当前环境中所有的包及其版本,并生成一个 requirements.txt 文件。
# (venv) 提示符下 pip freeze > requirements.txt
生成的 requirements.txt 文件内容可能像这样:
asgiref==3.6.0
Django==4.1.7
sqlparse==0.4.3
...
使用 requirements.txt 安装依赖
当你在另一台新机器上(或者在新的虚拟环境中)部署这个项目时,你只需要:
- 克隆项目代码。
- 创建并激活虚拟环境。
- 运行以下命令,一键安装所有依赖:
# (venv) 提示符下 pip install -r requirements.txt
-r 参数表示从文件中读取依赖列表。
常见问题与解决方案
问题 1:pip 权限错误
现象:尝试使用 pip install 时,提示 Permission denied 或需要 sudo。
# 错误示例 pip install some-package ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/usr/local/lib/python3.10/site-packages/...'
原因:你试图将模块安装到系统级的 Python 目录中,这需要管理员权限,并且可能会破坏系统环境。
解决方案: 强烈推荐:使用虚拟环境,这是从根源上解决问题的最佳方法。
如果不使用虚拟环境,可以安装到用户目录下,这不需要 sudo:
pip install --user some-package
模块会被安装到 ~/.local/lib/python3.x/site-packages/ 目录下。
问题 2:ModuleNotFoundError
现象:在 Python 脚本中 import module 时,提示 ModuleNotFoundError: No module named 'module_name'。
原因:
- 你忘记安装这个模块了。
- 你在一个虚拟环境中安装了模块,但在另一个(或全局)环境中运行脚本。
- Python 的模块搜索路径 (
sys.path) 中没有包含模块的安装位置。
解决方案:
- 确认安装:使用
pip3 list查看模块是否已安装。 - 检查环境:确保你是在安装了该模块的虚拟环境中运行脚本,检查终端提示符是否有
(venv)。 - 使用
--user:如果是在用户目录下安装的,确保你的脚本运行环境能找到~/.local目录(这通常是默认的)。
问题 3:pip 命令找不到
现象:bash: pip: command not found。
原因:系统中没有安装 pip,或者 pip 的安装路径没有被添加到系统的 PATH 环境变量中。
解决方案:
如上文“准备工作”中所述,使用系统的包管理器(apt 或 dnf)来安装 pip3。
# Debian/Ubuntu sudo apt install python3-pip # CentOS/RHEL/Fedora sudo dnf install python3-pip
其他安装方式(了解即可)
除了 pip,你可能还会遇到其他方式,但它们有特定的使用场景。
使用 apt 安装
对于一些非常基础、与系统库紧密相关的 Python 模块(如 numpy, sqlite3 等),Linux 发行版的官方仓库也可能提供它们。
优点:
- 通过系统包管理器安装,与系统集成度高。
- 可能会链接到系统优化的底层库(如 MKL 加速的
numpy)。
缺点:
- 版本可能非常老旧,跟不上社区的更新速度。
- 无法用
pip进行管理,容易造成环境混乱。
示例 (Ubuntu/Debian):
sudo apt install python3-numpy
注意:除非你知道你在做什么,否则不建议使用 apt 来安装 Python 模块。pip 是社区的标准。
从源码编译安装
一些复杂的 C/C++ 扩展模块可能需要从源码编译安装,这通常是在 pip 安装失败时的备选方案。
步骤:
- 从 PyPI 或 GitHub 下载源码压缩包(如
package-name.tar.gz)。 - 解压。
- 进入目录,运行:
python3 setup.py build python3 setup.py install
同样,为了避免权限问题,最好在虚拟环境中运行,或者使用
pip(它会自动处理这个过程)。
| 场景 | 推荐流程 |
|---|---|
| 开始新项目 | mkdir my_project -> cd my_project -> python3 -m venv venv -> source venv/bin/activate -> pip install <package> |
| 部署现有项目 | git clone <project_url> -> cd project -> python3 -m venv venv -> source venv/bin/activate -> pip install -r requirements.txt |
| 快速测试一个库 | pip3 install <package> -> python3 -> import <package> (测试完后,最好用 pip3 uninstall <package> 清理) |
记住这个黄金法则:虚拟环境是你的好朋友,requirements.txt 是你的项目护照,遵循它们,你的 Python 开发之路会平坦很多。
