Linux离线安装大模型依赖包:手把手从下载到部署
为什么需要离线安装大模型依赖包
很多公司内部服务器处于内网或受限制网络环境,无法直接通过 pip install 拉取PyPI包。
但大模型(如LLaMA、ChatGLM等)往往依赖torch、transformers、accelerate等重量级库,直接联网下载动辄几GB。
本文正解决这类场景:已有离线机器(无网络),先在外网机器上将依赖完整下载,再通过U盘或内部中转传到目标Linux服务器上安装。
无需专业知识,跟着抄命令就行。
准备工作:外网机器与目标服务器的核对
- 外网机器(能访问PyPI):系统建议与目标服务器相近(比如都是Ubuntu 20.04或CentOS 7),避免glibc版本冲突。
- 目标离线服务器:确认已安装Python(3.7及以上)和pip(19.3以上)。
- 存储介质:大模型依赖包总和可能超过1GB,准备U盘或通过内部共享文件夹传递。
- 依赖清单:从大模型项目官方获取
requirements.txt,或自己记下所有需要的包名。
注意:如果目标服务器上已有某些基础包(如numpy、setuptools),建议在外网机器同步版本,避免冲突。
第一步:在外网机器上下载所有依赖包
打开终端,执行以下命令将指定依赖及其子依赖全部下载到 offline_packages 目录下:
mkdir -p ~/offline_packages
pip download -r requirements.txt -d ~/offline_packages --platform manylinux2014_x86_64 --only-binary=:all:
-r requirements.txt:你的依赖文件路径,若没有则手动输入包名,如pip download torch torchvision torchaudio。-d:指定存放目录。--platform:指定平台架构(x86_64最常用),确保下载的二进制包与目标服务器兼容。--only-binary=:all::避免下载源码包,减少编译失败风险。
如果某些包不支持二进制(如某些依赖只有源码),
可以去掉 --only-binary,
但需要目标服务器具备编译环境(gcc、
python-devel等),
离线环境下建议先用 pip download --no-deps 处理核心包,
再手动递归下载子依赖。
第二步:将包传输到离线服务器并安装
将 offline_packages 文件夹复制到目标服务器,例如通过U盘或内网scp:
scp -r offline_packages user@离线服务器IP:/home/user/
登录目标服务器,进入目录后执行离线安装:
cd /home/user/offline_packages
pip install --no-index --find-links=./ -r requirements.txt
--no-index:禁止连接PyPI。--find-links=./:从当前目录检索.whl和.tar.gz文件。
安装过程会根据依赖顺序自动解压安装。
请留意终端输出,若有“红色报错”立即停下排查。
避坑指南:高频问题与解决方案
问题1:提示“not a supported wheel on this platform”
原因:下载时未指定正确的platform tag,或目标服务器是ARM架构却下载了x86_64的包。解决方案:用 pip debug --verbose 查看目标服务器支持的tags,然后在外网用 --platform 匹配。
问题2:安装中卡在“Building wheel for xxx”
原因:某个包只有源码,缺少编译环境。解决方案:在外网先 pip wheel xxx 生成.whl文件,再将生成的.whl放入 offline_packages。
问题3:依赖缺失错乱(如torch与numpy版本不匹配)
原因:requirements.txt里的版本锁定太死。建议先在外网用 pip install -r requirements.txt 成功一次,再用 pip freeze > full_req.txt 生成精确版本表;离线环境则使用 full_req.txt。
验证安装是否成功
安装完毕后,在Python中导入核心库测试:
import torch
print(torch.__version__)
import transformers
print(transformers.__version__)
如果无报错且输出版本号,说明离线依赖安装成功。
接着运行大模型的示例代码(比如加载tokenizer和model),确保所有依赖都能正常调用。
如果你正在处理Linux离线安装大模型依赖包,建议按本文步骤完整执行;
若中途遇到陌生报错,优先回看“避坑指南”部分,一般都能解决。