在无外网ubuntu环境中部署jev模型需先在同环境联网中转机离线打包:确认系统参数,用pip-download按平台下载wheel,手动获取并优化onnx模型与配置,压缩校验后拷贝至离线机;再建虚拟环境、本地安装依赖、复制模型文件,最后验证加载成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在无外网连接的Ubuntu生产环境中部署JEV模型,必须绕过所有在线依赖下载环节,直接将预编译的Python包、模型权重文件、推理运行时及配置脚本完整搬运到目标机器。这要求你提前在一台联网且系统环境完全一致(Ubuntu版本、CPU架构、Python小版本)的“中转机”上完成全部依赖抓取与打包,否则安装过程会在第3步或第7步因平台标签不匹配而静默失败。
准备离线依赖包集合
在联网的Ubuntu中转机上执行以下操作,确保该机器与目标离线机完全同源:运行lsb_release -sc确认发行版代号(如focal、jammy),运行uname -m确认架构(x86_64/arm64),运行python3 --version确认Python小版本(如3.10.12)。
创建专用工作目录并进入:mkdir -p ~/jev-offline && cd ~/jev-offline。
安装pipdeptree和pip-download工具:pip3 install pipdeptree pip-download——这两个工具是离线打包的核心,pip-download能按平台精准拉取wheel,pipdeptree可导出完整依赖树避免漏包。
新建requirements.txt,内容为JEV模型官方文档明确声明的最小依赖集(不含torch/tensorflow等大框架,它们需单独处理):
jev-inference==0.4.2<br>numpy>=1.21.0,onnxruntime>=1.15.1<br>pyyaml>=6.0.0<br>click>=8.0.0
执行依赖抓取命令:pip-download -d ./wheels -r requirements.txt --platform manylinux_2_31_x86_64 --python-version 310 --only-binary=:all:——【务必替换--platform和--python-version参数为你的实际环境值,错一个字符会导致离线机安装时报“not a supported wheel on this platform”】。该命令会把所有兼容包下载到./wheels目录,跳过任何源码包(.tar.gz)。
处理模型权重与运行时文件
JEV模型本身不提供pip安装包,其核心是jev_model.onnx和配套的config.yaml。你需要从JEV项目GitHub Release页(或内部NAS)手动下载这两个文件,保存至~/jev-offline/model/目录。
检查ONNX模型是否已针对目标硬件优化:运行onnxruntime-tools optimize -m jev_model.onnx -o jev_model_opt.onnx -p cpu生成优化版,替换原文件。未优化的模型在离线机上首次推理可能耗时超2分钟,且内存占用翻倍。
将整个~/jev-offline目录压缩为jev-offline-bundle.tar.gz,用sha256sum jev-offline-bundle.tar.gz记录校验值——这是验证离线机解压后文件完整性的唯一依据。
在离线Ubuntu机器上安装与验证
将jev-offline-bundle.tar.gz拷贝至目标机(如通过U盘或内网SFTP),解压:tar -xzf jev-offline-bundle.tar.gz -C /tmp/。
进入解压目录:cd /tmp/jev-offline。
创建隔离的Python虚拟环境(避免污染系统Python):python3 -m venv jev-env && source jev-env/bin/activate。
使用本地wheel安装所有依赖:pip install --find-links ./wheels --no-index --upgrade --force-reinstall $(cat requirements.txt | cut -d'=' -f1)——此命令强制从本地目录安装,跳过PyPI查询,【若漏掉--no-index参数,pip仍会尝试连外网并超时卡死】。
复制模型文件到环境内:cp -r model/ jev-env/lib/python3.*/site-packages/jev_inference/(路径需根据实际site-packages位置调整)。
运行最小验证脚本:python -c "from jev_inference import JEVModel; m = JEVModel(); print('OK')"。输出OK即表示模型加载成功,此时可终止操作。











