云计算百科
云计算领域专业知识百科平台

离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制

背景:

在进行深度学习算法的环境部署时,由于生产服务器被彻底隔离外网,只能把conda中env文件夹中的虚拟环境文件夹从开发机直接拷到离线 Windows 服务器。

其中一运行labelimg就报错:

Fatal error in launcher: Unable to create process using
"D:\\miniconda3\\envs\\labelimg\\python.exe"

1. 为什么直接复制 envs\\xxx 会出错?

  • 启动器硬编码:pip/conda 安装 CLI 时,会在 Scripts\\ 下生成小型 .exe 启动器,并把「解释器绝对路径」写进可执行文件头。每个 Scripts\\*.exe.py 都写死了原机绝对路径,比如D:\\miniconda3\\envs\\xxx\\python.exe

  • 路径一旦换盘 / 换目录,启动器仍指向旧地址,导致找不到 python.exe

2. 核心思路

conda-pack 先把环境打成压缩包;在目标机 conda-unpack 批量重写所有路径。全过程无需联网。

3. 解决步骤

源机器(有网)操作

# ① 激活待迁移环境
conda activate myenv

# ② 安装一次 conda-pack(任意方式)
pip install conda-pack

# ③ 打包为单文件压缩包
conda pack -n myenv -o myenv.tar.gz # 可加 –compress-level 0 提速

会在当前命令行所在目录下生成 myenv.tar.gz,将其拷到服务器,解压到服务器上的env中。

目标 Windows 服务器(离线)操作

运行 conda-unpack 修复硬编码路径

# 进入环境的 Scripts 目录
cd D:\\ai_software\\envs\\labelimg\\Scripts

# 执行 conda-unpack
conda-unpack.exe

执行过程会:

  • 扫描整个环境,找到旧机器路径前缀;

  • 把它们替换为 当前目录的绝对路径;

  • 运行完没有报错即表示修补完成。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!