目标机器不能联网时,LingBot-Vision 无法通过常规在线安装方式补齐依赖,但可以把整套安装要素拆成两个部分:Python 依赖包和模型文件。依赖包在联网机器上用 pip 下载并固化为本地 wheel 源,模型文件通过压缩传输和校验后放到内网指定目录。整个迁移过程可以提前验证,避免把缺包、缺模型的问题带到离线现场。
适用场景:目标服务器无外网、内网无 PyPI 镜像,且需要安装 LingBot-Vision。操作动作:在联网机器上用 pip freeze 或 pipreqs 导出依赖列表,再用 pip download 按平台参数拉取 wheel 包,连同模型文件打包拷贝到内网。验证方式:离线机器安装时指定 PIP_FIND_LINKS 指向 wheel 目录,启动后用 curl 检查健康接口。风险边界:依赖列表必须与实际运行环境匹配,模型传输后需做完整性校验。
在联网机器上导出依赖列表
先确定 LingBot-Vision 实际依赖哪些 Python 包。如果开发环境已经能运行项目,用 pip freeze 导出当前虚拟环境中的所有包;如果只想保留项目直接引用的包,用 pipreqs 扫描项目目录生成最小依赖列表。
# 方式一:从当前环境导出全部包
pip freeze > requirements.txt
# 方式二:按项目源码推断依赖
pip install pipreqs
pipreqs /path/to/lingbot-vision `--force`记录 Python 版本和平台信息,例如 python `--version`、uname -m、操作系统发行版。建议把这两条信息连同 requirements.txt 一起保存,便于在离线机器上确认环境是否一致。
用pip download打包离线wheel包
在联网机器上执行 pip download,把依赖列表指定的包全部下载为 wheel 文件,形成离线安装源。为了减少跨平台兼容问题,建议预先指定目标机器的操作系统、架构和 Python 版本。
mkdir -p wheelhouse
pip download \
-r requirements.txt \
-d wheelhouse \
`--only-binary`=:all: \
`--platform` manylinux2014_x86_64 \
`--python-version` 3.10 \
`--implementation` cp \
`--abi` cp310上例中 `--platform`、`--python-version` 等参数需要按目标机器实际环境调整,可先查看目标机器的 python3 -c "import platform; print(platform.platform())" 输出。如果包含纯 Python 包,`--only-binary`=:all: 可能漏掉只有源码包的依赖,此时可去掉该参数,允许下载 .tar.gz 源码包,离线安装时再编译。
下载完成后生成校验文件,防止传输过程中文件损坏或遗漏。
cd wheelhouse
sha256sum *.whl *.tar.gz > SHA256SUMS
cd ..拷贝LingBot-Vision模型与启动脚本
LingBot-Vision 的模型文件通常是一个独立的目录,包含多个权重文件和配置文件。不要直接拷贝零散文件,建议先打成 tar 包再传输,这样能保留目录结构和符号链接。
tar -czf lingbot_vision_models.tar.gz /path/to/models传输前在联网机器上生成校验值,传输到内网后再重新计算并对比。使用 shasum 记录完整性结果,确保模型包没有缺失或数据损坏。
shasum -a 256 lingbot_vision_models.tar.gz > models.sha256
# 拷贝 models.sha256 到离线机器,传输完成后执行:
shasum -a 256 -c models.sha256同时把启动脚本、配置文件、requirements.txt 和上面的 wheelhouse 目录一并拷贝。建议把所有材料放到同一个目录下,例如 lingbot_offline/,内网机器上直接解压即可。
在离线机器上安装并启动服务
离线机器上先确认 Python 版本与打包时一致,然后设置 PIP_FIND_LINKS 指向 wheel 包目录执行安装。这样可以告诉 pip 只从本地目录寻找依赖,不需要访问外网。
export PIP_FIND_LINKS=/path/to/lingbot_offline/wheelhouse
pip install `--no-index` -r requirements.txt如果某些包必须源码编译,添加 `--no-binary` :all: 或单独指定包名。安装完成后解压模型包到启动脚本约定的路径。
tar -xzf lingbot_vision_models.tar.gz -C /path/to/models启动 LingBot-Vision 服务后,用 curl 检查健康接口。假设健康检查地址为 http://127.0.0.1:8080/health,执行:
curl -i http://127.0.0.1:8080/health返回 HTTP 200 且 body 包含预期状态字段,说明离线安装链路可用。如果接口不通,先看服务日志;常见原因是依赖缺失、模型路径不对或平台参数不匹配。建议在正式交付前,用一台与目标环境一致的内网测试机完整跑一遍这个流程,确认后再批量部署。