
LlamaFactory 离线环境迁移踩坑全记录背景工厂产线 5090D 机器完全离线需要在联网机上打包 LlamaFactory 运行环境再搬到离线机部署。问题一conda 解析依赖时 OOMOut of memory: Killed process 6136 (conda) anon-rss:2500524kBconda 解析依赖时常驻内存约 2.4 GB物理内存不够直接被 OOM Killer 杀掉。解决加 swap 止血。sudoddif/dev/zeroof/swapfilebs1Gcount4sudochmod600/swapfilesudomkswap/swapfilesudoswapon/swapfileecho/swapfile none swap sw 0 0|sudotee-a/etc/fstab物理内存 ≤ 8G 的话 swap 直接加到 8G。问题二docker pull 超时docker: Get https://registry-1.docker.io/v2/: context deadline exceeded部分层走了加速器大层回退直连官方源超时。解决用前缀直连强制全程走加速源。dockerpull docker.xuanyuan.me/hiyouga/llamafactory:latestdockertag docker.xuanyuan.me/hiyouga/llamafactory:latest hiyouga/llamafactory:latest不通就换docker.1ms.run或docker.m.daocloud.io。已完成的层会被复用不会重下。最稳的方案还是在联网机拉完整后用docker save导出离线机docker load导入彻底绕开网络问题。问题三conda pack 报文件被覆盖CondaPackError: Files managed by conda were found to have been deleted/overwritten - pip 22.3.1 - wheel 0.38.4 - setuptools 65.5.1pip 升级过 conda 自带的基础包导致元数据和磁盘不一致。解决先尝试用 conda 重新对齐。condainstallpip wheel setuptools --update-deps-y如果仍报错说明元数据已经对不上直接用--ignore-missing-files跳过校验对这三个基础包是安全的。conda pack-nllama-factory-ollama-factory.tar.gz\--ignore-editable-packages\--ignore-missing-files注意conda没有--force-reinstall参数那是 pip 的。问题四conda create 是否需要联网默认需要会下载 Python 解释器和依赖包。离线机上不要conda create直接走 conda-pack 解压 conda-unpack。如果非要在离线机上创建必须加--offline并提前把pkgs/缓存拷过去但这条路比 conda-pack 麻烦得多。问题五conda-unpack 后 no module named hatchling之前打包用了--ignore-editable-packagesLlamaFactory 本身没打进 tar.gz离线机需要重新pip install -e .。而新版 LlamaFactory 的pyproject.toml用hatchling做构建后端离线环境里没有pip 又无法联网下载构建依赖构建直接失败。解决联网机补装后重打。conda activate llama-factory pipinstallhatchling conda pack-nllama-factory-ollama-factory.tar.gz\--ignore-editable-packages\--ignore-missing-files离线机还原后执行pipinstall--no-build-isolation --no-index --no-deps-e.三个参数缺一不可--no-build-isolation避免 pip 创建临时隔离环境去联网拉构建后端--no-index禁止联网解析--no-deps跳过依赖解析运行时依赖已在环境里。问题六no module named editableseditables是hatchling做可编辑安装时的运行时依赖补上即可。# 联网机pipinstallhatchling editables setuptools wheel conda pack-nllama-factory-ollama-factory.tar.gz\--ignore-editable-packages\--ignore-missing-files# 离线机pipinstall--no-build-isolation --no-index --no-deps-e.问题七删除 conda 环境conda deactivate condaenvremove-nllama-factory-yconda remove -n xxx不带--all只删包不删环境必须用conda env remove或conda remove --all。如果元数据损坏删不掉直接rm -rf ~/anaconda3/envs/xxx手动删目录再清理~/.conda/environments.txt中的残留记录。完整流程总结# 联网机 conda activate llama-factory pipinstallhatchling editables setuptools wheel conda pack-nllama-factory-ollama-factory.tar.gz\--ignore-editable-packages\--ignore-missing-files# 离线机 mkdir-p~/anaconda3/envs/llama-factorytar-xzfllama-factory.tar.gz-C~/anaconda3/envs/llama-factory conda activate llama-factory conda-unpack# 单独注册 LlamaFactorycd/path/to/LlamaFactory-main pipinstall--no-build-isolation --no-index --no-deps-e.# 验证llamafactory-cli version llamafactory-cli webui--helpnvidia-smi python-cimport torch; print(torch.cuda.is_available())