最可靠方式是pip install --no-index --find-links ./wheels -r requirements.txt:它自动解析依赖顺序、跳过网络、避免手动安装错乱;需严格匹配目标环境平台标签(如cp39-manylinux2014_x86_64),通过pip._vendor.packaging.tags.sys_tags()获取准确标签,并用pip download --platform --python-version --abi在联网机精准下载全量wheel包。

离线批量安装 Python .whl 包,最可靠的方式不是逐个 pip install xxx.whl,而是用 pip install --no-index --find-links 配合 requirements.txt ——它能自动解析依赖顺序、跳过网络检查、避免因手动安装顺序错乱导致的隐式联网请求。
确认目标环境平台标签,否则90%的安装会失败
离线安装失败,绝大多数是因为 .whl 文件名里的平台标签(如 cp39-manylinux2014_x86_64)和目标机器不一致。不能只看“Python 3.9”,必须严格匹配:
- 运行
python -c "import pip._vendor.packaging.tags; print(list(pip._vendor.packaging.tags.sys_tags())[0])"—— 这行输出就是你该用的完整标签(例如cp39-cp39-manylinux2014_x86_64) - 运行
uname -m和cat /etc/os-release | grep PRETTY_NAME确认系统架构与基础发行版(manylinux2014不兼容 CentOS 6 或旧版 glibc) - 如果目标机是 Windows,注意
win_amd64和win32不能混用;ARM64 设备需明确找win_arm64标签
在联网机上下载带正确标签的 wheel 包集合
别用 pip download requests 直接拉包——它默认按当前机器环境下载,极易拉回不兼容的版本。必须显式指定目标平台参数:
- 先下载主包(不带依赖):
pip download --no-deps --platform manylinux2014_x86_64 --python-version 39 --abi cp39 --only-binary=:all: requests==2.31.0 -d ./wheels - 再查依赖:
pip show requests | grep Requires,对每个依赖项重复上一步,确保全部使用相同--platform和--python-version - 最后执行:
ls ./wheels | grep -E "(cp39|manylinux)" | head -5快速扫一眼,确认没混入cp310、win32或macosx
在离线机上用 requirements.txt 批量安装
把 requirements.txt 和整个 wheels/ 目录一起拷过去,执行一条命令即可完成全量安装:
- 确保
requirements.txt中只写包名和版本,不带 URL 或 VCS 地址(例如写requests==2.31.0,而非git+https://...) - 进入
wheels/所在目录,运行:pip install --no-index --find-links ./wheels -r requirements.txt - 加
--force-reinstall --no-deps可用于重装单个包调试;但批量安装时不要加,否则会破坏依赖推导 - 安装后务必验证:
python -c "import requests; print(requests.__version__)"+ 检查site-packages/下对应目录是否存在
最容易被忽略的是:某些包(如 torch、tensorflow)的 .whl 名称里还嵌了 CUDA 版本(如 cu121),而 pip._vendor.packaging.tags.sys_tags() 不会体现这点——必须人工核对 nvcc --version 和 cat /usr/local/cuda/version.txt,再选对应 wheel。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











