You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多台无互联网机器创建预置依赖的默认Python环境

离线多服务器预装Python环境可行方案

以下方案均适配仅支持SFTP文件传输、目标服务器无公网连接的场景,按实施复杂度从低到高排序:

方案1:本地离线wheel源部署

这是兼容性最好、后续维护最方便的方案,适合需要长期更新库的场景:

  • 准备一台和目标服务器CPU架构、操作系统版本、glibc版本、Python大版本完全一致的有网构建机,安装和目标端同版本的官方Python,创建干净的虚拟环境避免打包冗余依赖
  • 把所有需要预装的第三方库写入requirements.txt,执行命令下载全量依赖包(含所有子依赖的二进制wheel)到本地目录:
    pip download -r requirements.txt -d ./offline_pypi_pkgs --only-binary=:all:
    
    如果有必须从源码编译的包,直接在构建机上提前编译成wheel文件再放进offline_pypi_pkgs目录,避免目标机缺编译环境安装失败
  • 将整个offline_pypi_pkgs目录通过SFTP上传到所有目标服务器的固定路径(比如/opt/offline_pypi)
  • 目标服务器全局Python环境下直接执行安装命令即可完成全量库预装:
    pip install -r requirements.txt --no-index --find-links=/opt/offline_pypi
    
    后续要新增库时,只需要在构建机下载对应wheel传到离线源目录即可,不需要重新部署整个环境。

方案2:便携Python整包拷贝

适合服务器环境完全一致、追求部署效率的场景,一次打包多台直接复用:

  • 同样在同构有网构建机上,将指定版本的Python编译安装到独立非系统路径(比如/opt/python3_runtime),编译时注意开启相对路径依赖选项,或者后续用patchelf修正二进制文件的rpath,避免拷贝后找不到依赖
  • 在这个独立Python环境中安装所有需要的第三方库,验证所有库可正常导入后,将整个/opt/python3_runtime目录打包为tar.gz压缩包
  • 通过SFTP将压缩包传到所有目标服务器的/opt路径下解压,创建软链接将/opt/python3_runtime/bin/python3、/opt/python3_runtime/bin/pip3链接到/usr/local/bin/下,覆盖系统默认Python调用入口即可。

方案3:Conda环境整包打包

适合依赖大量非Python动态库的场景(比如PyTorch、数据科学栈带CUDA、OpenBLAS等底层依赖的库):

  • 在同构有网构建机上安装Miniconda,创建指定Python版本的虚拟环境,安装所有需要的第三方库
  • 安装conda-pack工具,执行命令将整个虚拟环境打包为独立压缩包,工具会自动处理路径依赖、硬链接等问题,比手动拷贝Python目录兼容性更高:
    conda pack -n 你的环境名 -o python_env.tar.gz
    
  • 通过SFTP将压缩包传到目标服务器,解压到固定路径后执行一次conda-unpack脚本修复路径,再配置全局PATH将该环境设为默认Python环境即可。

通用注意事项:

  • 构建环境和目标环境的底层依赖必须严格对齐,尤其是glibc版本,否则会出现二进制包无法执行的问题
  • SFTP传输大文件后建议通过md5/sha256校验文件完整性,避免传输损坏导致环境异常
  • 所有部署路径建议统一固定,方便后续批量更新维护

内容的提问来源于stack exchange,提问作者TuLiO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.19 16:15:46