家用住宅主机Linux离线安装大模型依赖包
为什么需要离线安装大模型依赖包
大模型(如LLaMA、ChatGLM)依赖的Python包通常有几十甚至上百个,如果主机没有互联网,pip install -r requirements.txt 会直接失败。
家用住宅主机常见场景是:物理机不上网或只有内网,但需要运行推理模型。
本文用最直接的方式教你:在另一台联网机器上把所有依赖打包下载,用U盘或其他介质传输到目标主机,再离线安装。
前置准备:两台机器和一个U盘
- 联网机器(笔记本或台式机,Windows/Linux均可):用于下载依赖包。
- 目标主机(家用住宅主机,Linux系统,无网络):需要安装依赖包。
- U盘或移动硬盘:用于传输文件,格式建议exFAT(避免单个文件4GB限制)。
- 确认Python版本:在目标主机运行
python3 --version,记住版本号(如3.10.16),联网机器要保持一致。 - 确认大模型需求清单:一般项目的
requirements.txt文件里列出了所有依赖。
分步操作:从下载到离线安装
第一步:在联网机器上批量下载依赖包
把项目的 requirements.txt 复制到联网机器,执行以下命令(以Python 3.10为例):
pip download -r requirements.txt -d ./packages --python-version 3.10 --platform manylinux2014_x86_64 --only-binary=:all:
-r requirements.txt:指定依赖清单。-d ./packages:下载到当前目录下的 packages 文件夹。--python-version:指定目标主机的Python版本(确保匹配)。--platform:家用主机如果是x86_64架构,用manylinux2014_x86_64;如果是ARM(如树莓派),需改为manylinux2014_aarch64。--only-binary=:all::跳过源码编译,只下载预编译的whl文件,减少依赖冲突。
如果下载过程中有源文件被跳过,会提示“No matching distribution found”,这时去掉 --only-binary 再试:
pip download -r requirements.txt -d ./packages --python-version 3.10 --platform manylinux2014_x86_64
下载完成后,把整个 packages 文件夹复制到U盘。
第二步:将依赖包传输到目标主机
把U盘插入目标主机,挂载后复制到指定目录(比如 /opt/ml_packages):
sudo mkdir -p /opt/ml_packages
sudo cp -r /media/usb0/packages/* /opt/ml_packages/
第三步:在目标主机上离线安装
进入依赖包目录,执行:
cd /opt/ml_packages
pip install --no-index --find-links ./ -r requirements.txt
--no-index:不从PyPI在线查找。--find-links ./:从当前目录搜索依赖。-r requirements.txt:同样需要配套的requirements.txt(可从U盘一并复制)。
如果没有报错,所有依赖就安装完成了。
避坑指南:常见问题与解决方法
- Python版本不匹配:下载时指定的版本号必须与目标主机完全一致(包括小版本)。可使用
pyenv或conda创建相同版本的环境。 - 缺少系统依赖:大模型依赖有时需要
libgomp、openmp等底层库。在目标主机执行:
sudo apt-get update && sudo apt-get install -y libgomp1 libomp5
- pip版本过旧:目标主机先升级pip(离线包可提前下载pip的whl):
python3 -m pip install --no-index --find-links ./upgrade_pip pip-23.3.1-py3-none-any.whl
- 预编译包与架构不符:如果家用主机是ARM架构(比如树莓派),平台参数要改为
--platform manylinux2014_aarch64。 - 网络中断导致下载不全:在联网机器上先
pip install -r requirements.txt --dry-run查看完整依赖列表,再下载。
效果验证:确认依赖可用
在目标主机上运行模型加载脚本的简单测试:
import torch
import transformers # 假设使用transformers
print(torch.__version__)
print(transformers.__version__)
如果打印出版本号且无报错,说明离线安装成功。
也可以直接跑一个 model = AutoModel.from_pretrained(...) 下载过的模型,检查推理是否正常。
完成后,建议把 packages 文件夹和 requirements.txt 备份到本地硬盘,下次重装系统时可直接复用。
如果你正在处理家用住宅主机Linux离线安装大模型依赖包,建议先按本文步骤完整执行,再根据项目特殊依赖做微调;
遇到报错时优先回看避坑部分。