python3 --version 能出版本号,紧接着 pip3 install requests 却提示 pip3: command not found。Python 装上了,包管理器没跟着来,最小化安装的 Debian、Ubuntu 上特别常见。

Debian 和 Ubuntu 装 python3-pip

sudo apt update; sudo apt install python3-pip

装完看一眼版本,顺手确认它绑的是哪个解释器:

pip3 --version

输出里会带上 python3.x 的路径。路径对不上,说明系统里装了多个 Python,pip3 指向的不是你想用的那个。

CentOS 和 Rocky 包名相同

sudo dnf install python3-pip

老一点的系统把 dnf 换成 yum。报 No package python3-pip available,先确认 epel 源开了没有,再查 python3 是不是从源码编译的,源码装的 Python 不会往系统里注册包。

源码装的 Python 用 ensurepip

自己编译的 Python 一般不带 pip,官方给的路子是:

python3 -m ensurepip --upgrade

跑完仍然没有 pip3 命令,就把用户级 bin 目录加进 PATH。更省事的写法是全程用 python3 -m pip 调用,它永远命中当前解释器,不用记路径。

装包报 externally-managed-environment

新版 Debian 和 Ubuntu 会拦全局安装,提示系统包由 apt 管理,不让 pip 直接写进去。别急着加参数硬来,正确做法是建虚拟环境:

python3 -m venv myenv; source myenv/bin/activate

激活之后 pip 指向环境内部,装什么都不碰系统目录。只想临时验证一个包,用 pip3 install --user 装到用户目录,风险也比动系统目录小。

判断:服务器上的依赖一律走虚拟环境,系统级只留 pip 本体和编译工具。国内下载慢就临时指定镜像源,别急着改全局配置。