目录
- 核心概念:
pip是什么? - 前提条件:安装 Python
- 安装
pip- 使用系统包管理器(推荐)
- 使用
ensurepip(适用于 Python 3.4+) - 手动安装(备用方案)
pip的基本使用- 升级
pip自身(重要!) - 安装包
- 卸载包
- 列出已安装的包
- 显示包的详细信息
- 检查包是否有可用更新
- 导出/导入依赖列表
- 升级
- 最佳实践与高级技巧
- 使用虚拟环境(
venv) - 权限问题:为什么应该避免
sudo pip? - 国内用户加速:使用国内镜像源
pip与pip3的区别
- 使用虚拟环境(
- 常见问题与解决方案
核心概念:pip 是什么?
pip 是 Python 的包安装程序(Package Installer for Python),它的主要作用是:
- 安装:从 Python 包索引(PyPI, Python Package Index)或其他来源下载并安装 Python 包及其依赖项。
- 卸载:移除已安装的包。
- 管理:列出、查看、升级已安装的包。
可以把 pip 理解为 Python 世界的 apt (Debian/Ubuntu) 或 yum (CentOS/RHEL)。
前提条件:安装 Python
pip 依赖于 Python,你的系统上必须已经安装了 Python。
如何检查 Python 是否已安装?
打开终端,运行以下命令:
# 检查 Python 3 是否安装 python3 --version # 或者检查 Python 2 是否安装 (不推荐,Python 2 已停止维护) python --version
如果看到类似 Python 3.8.10 或 Python 3.10.6 的输出,说明 Python 已安装,如果提示 command not found,则需要先安装 Python。
如何安装 Python?
根据你的 Linux 发行版使用相应的包管理器:
-
基于 Debian/Ubuntu 的系统 (如 Ubuntu, Mint):
# 更新软件包列表 sudo apt update # 安装 Python 3 和 pip (通常一起安装) sudo apt install python3 python3-pip
-
基于 Red Hat/CentOS/Fedora 的系统 (如 CentOS, Fedora):
# 更新软件包列表 sudo yum update # 安装 Python 3 和 pip sudo yum install python3 python3-pip # 对于较新的系统 (如 Fedora 22+, CentOS 8+), 使用 dnf # sudo dnf install python3 python3-pip
安装 pip
如果你的 Python 安装时没有自带 pip,或者你手动编译了 Python,可以按照以下方法安装。
使用系统包管理器(推荐)
这是最简单、最稳定的方法,因为它会自动处理依赖关系。
-
Ubuntu/Debian:
sudo apt update sudo apt install python3-pip
在较新的 Ubuntu 版本上,包名可能就是
pip。sudo apt install pip
-
CentOS/RHEL/Fedora:
sudo yum install python3-pip # 或者使用 dnf # sudo dnf install python3-pip
使用 ensurepip(适用于 Python 3.4+)
Python 3.4 及更高版本自带了 ensurepip 模块,可以用来安装 pip。
# 确保以 root 权限运行,因为 pip 默认会安装到系统目录 sudo python3 -m ensurepip --upgrade
手动安装(备用方案)
如果以上方法都不可用,可以从 get-pip.py 脚本安装,这是 pip 官方推荐的安装方式。
-
下载
get-pip.py脚本:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
-
运行脚本安装
pip:# 同样,推荐使用 sudo 以避免权限问题 sudo python3 get-pip.py
安装完成后,可以运行 pip3 --version 来验证。
pip 的基本使用
pip 的命令非常直观,以下是最常用的命令。
升级 pip 自身(重要!)
在新安装 pip 后,强烈建议先将其升级到最新版本,以获得最新的功能和错误修复。
# 使用 pip 升级 pip pip3 install --upgrade pip
安装包
这是 pip 最核心的功能。
# 安装最新的一个包 pip3 install requests # 安装特定版本的包 pip3 install numpy==1.21.0 # 安装大于或等于某个版本的包 pip3 install "pandas>=1.3.0" # 从本地的 .whl 或 .tar.gz 文件安装 pip3 install /path/to/your/package.whl
卸载包
pip3 uninstall <package_name> # pip3 uninstall requests
系统会提示你确认是否要卸载,输入 y 并回车即可。
列出已安装的包
# 列出所有已安装的包及其版本 pip3 list
显示包的详细信息
如果你想查看某个包的详细信息,比如依赖关系、版本、位置等。
pip3 show <package_name> # pip3 show numpy
检查包是否有可用更新
pip3 list --outdated
这个命令会列出所有有新版本的已安装包。
导出/导入依赖列表
这是在项目中管理依赖的关键。
-
导出当前环境的依赖列表到
requirements.txt文件:pip3 freeze > requirements.txt
requirements.txt文件内容示例:numpy==1.21.0 pandas==1.3.0 requests==2.26.0 -
根据
requirements.txt文件安装所有依赖:pip3 install -r requirements.txt
这在项目部署、团队协作和持续集成中非常有用。
最佳实践与高级技巧
使用虚拟环境(venv)
这是最重要的一条最佳实践!
为了避免不同项目之间的 Python 包版本冲突,你应该为每个项目创建一个独立的、隔离的 Python 环境,称为“虚拟环境”。
-
创建虚拟环境:
# my-project-env 是你给虚拟环境起的名字 python3 -m venv my-project-env
-
激活虚拟环境:
# 在 Bash 或 Zsh 中 source my-project-env/bin/activate # 激活后,你的终端提示符前会出现 (my-project-env) (my-project-env) user@hostname:~$
-
在虚拟环境中使用
pip: 一旦激活,你使用的pip和python命令都将是虚拟环境中的版本,与系统全局环境隔离。# 这个包只会安装在 my-project-env 环境中 pip install django # 列表也只会显示这个环境中的包 pip list
-
退出虚拟环境:
deactivate
权限问题:为什么应该避免 sudo pip?
直接使用 sudo pip install 会让包安装到系统的 Python 目录(通常是 /usr/local/lib/python3.x/),这可能导致:
- 权限错误:普通用户无法修改系统目录。
- 版本冲突:破坏系统工具依赖的 Python 包。
- 难以管理:无法轻松地为单个项目卸载或升级包。
解决方案:
- 最佳方案:始终使用 虚拟环境,在虚拟环境中,你不需要
sudo。 - 次优方案:如果确实需要安装全局包(一个系统级的命令行工具),请使用
--user标志,将包安装到用户主目录下。pip3 install --user <package_name>
这样包会安装在
~/.local/bin等目录,不需要管理员权限。
国内用户加速:使用国内镜像源
PyPI 服务器在国外,国内访问速度较慢,可以配置 pip 使用国内镜像源。
临时使用(单次安装):
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
设为默认(永久配置):
创建或编辑配置文件 ~/.pip/pip.conf (Windows 下是 %APPDATA%\pip\pip.ini),并添加以下内容:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple # 另一个可选的镜像源 # index-url = https://mirrors.aliyun.com/pypi/simple/
pip 与 pip3 的区别
pip:通常指向 Python 2 的包管理器,如果你的系统同时安装了 Python 2 和 Python 3,pip可能会安装到错误的 Python 环境中。pip3:明确指向 Python 3 的包管理器。
建议:在同时有 Python 2 和 Python 3 的系统上,始终使用 pip3 以确保操作的是正确的 Python 环境,在现代 Linux 发行版中,pip 命令有时已经直接链接到 pip3,但为了清晰和兼容性,推荐使用 pip3。
常见问题与解决方案
问题 1:pip 命令未找到 (pip: command not found)
原因:pip 没有安装,或者安装后没有添加到系统的 PATH 环境变量中。
解决:
- 确认已安装
python3-pip。 - 如果已安装但仍找不到,尝试重新链接或手动添加路径:
# 查找 pip3 的位置 which pip3 # 通常输出 /usr/bin/pip3 或 /usr/local/bin/pip3
/usr/local/bin不在PATH中,你可能需要添加它。
问题 2:ModuleNotFoundError: No module named 'pip'
原因:Python 找不到 pip 模块,这通常意味着 pip 没有为当前的 Python 版本安装,或者 Python 的 site-packages 目录有问题。
解决:
- 尝试使用
python3 -m pip来运行,这可以绕过PATH问题:python3 -m pip install --upgrade pip
- 如果这不起作用,重新使用
ensurepip或get-pip.py安装。
问题 3:权限被拒绝 (Permission denied)
原因:尝试在没有 sudo 的情况下写入系统目录,或者使用了 sudo pip。
解决:
- 首选:创建并使用虚拟环境。
- 次选:使用
--user标志进行用户级安装。 - 不推荐:如果必须全局安装,使用
sudo pip3 install ...,但要清楚潜在的风险。
希望这份详细的指南能帮助你在 Linux 上顺利地使用 pip!
