核心是分清环境、按需安装、避免越权、保持可复现:系统Python由发行版管理,禁止sudo pip安装;应使用pip install --user或为项目创建独立虚拟环境(python3 -m venv + source activate),并通过pip freeze > requirements.txt保障可复现。

在 Linux 中用 pip 管理依赖包,核心是“分清环境、按需安装、避免越权、保持可复现”。系统 Python 不是你的开发沙盒,直接往里面装包容易让 apt、dnf 等工具失灵;而虚拟环境或用户目录才是安全操作区。
区分安装位置:别碰系统环境
系统自带的 Python(如 /usr/bin/python3)由发行版管理,其包路径通常是 /usr/lib/python3.x/dist-packages/。用 sudo pip install 往这里装包,可能覆盖系统关键组件依赖,导致终端、软件中心甚至桌面环境异常。
推荐做法:
- 用 pip install --user 将包装进当前用户的 ~/.local/lib/python3.x/site-packages/,不影响他人也不动系统
- 为每个项目创建独立虚拟环境:python3 -m venv myproject,然后 source myproject/bin/activate 再 pip install
- 确认当前 pip 操作范围:运行 pip show pip 查看 Location 字段,就能知道它正在往哪装
常用操作命令速查
不需要记全部,掌握这几个高频动作就够日常使用:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
安装单个包:
pip install requests -
安装指定版本:
pip install Django==4.2.18或pip install "numpy>=1.24" -
从文件批量安装:
pip install -r requirements.txt(文件内容格式如requests==2.31.0) -
卸载包:
pip uninstall flask -
查看已装包:
pip list;只看过期的:pip list --outdated -
升级单个包:
pip install --upgrade pillow
跨环境部署:提前下载兼容包
开发机是 macOS 或 Windows,但服务跑在 Linux 服务器上?直接 pip install 可能拉错平台的 wheel 文件,导致 ImportError。
解决办法是用 pip download 预先拉取目标环境可用的包:
- 下载适配 Linux x86_64 + Python 3.11 的包:
pip download --platform linux_x86_64 --python-version 3.11 --abi cp311 --only-binary=:all: torch - 下载后得到 .whl 文件,可复制到离线服务器,再用
pip install ./torch-2.0.1-cp311-cp311-linux_x86_64.whl安装 - 搭配
--no-deps可只下主包,依赖另作处理,适合精细化控制
换源提速与长期维护
PyPI 官方源在国外,国内直连常慢或超时。建议设国内镜像为默认源:
- 临时使用清华源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ requests - 永久配置(写入用户级配置):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ - 升级 pip 自身:
pip install --upgrade pip(建议定期做,新版 pip 对依赖解析更稳) - 生成当前环境快照:
pip freeze > requirements.txt,便于重建或分享

















