如何从本地现有conda虚拟环境迁移绝版conda包到新环境并归档
Conda已安装离线包的归档与迁移方案
场景1:仅归档迁移目标单个包
第一步:从现有环境导出归档包
- 首先激活存储了目标包的旧虚拟环境
conda activate 旧环境名称 - 确认目标包的准确名称与版本
conda list | grep 目标包关键词 # Windows系统替换为:conda list | findstr 目标包关键词 - 导出目标包为可归档的离线安装包
执行后当前目录下生成的conda package --pkg-name 目标包名 --pkg-version 目标包版本号 --output ./目标包归档.tar.bz2.tar.bz2文件就是可留存的归档包。
第二步:安装到新虚拟环境
- 激活目标新虚拟环境
conda activate 新环境名称 - 执行本地安装命令
conda install --use-local 归档包存储路径/目标包归档.tar.bz2
场景2:归档迁移整个虚拟环境(适配包依赖复杂的情况)
如果目标包依赖的其他库版本也比较特殊,担心单独装包出现依赖冲突,可以直接迁移整个环境:
- 先安装conda-pack工具
conda install conda-pack - 打包整个旧环境
conda pack -n 旧环境名称 -o 整个环境归档.tar.gz - 在新环境所在的设备上,找到conda的envs目录,新建对应环境的文件夹后解压归档文件
mkdir -p 你的conda安装路径/envs/新环境名称 tar -xzf 整个环境归档.tar.gz -C 你的conda安装路径/envs/新环境名称 - 激活环境即可直接使用,所有包都会和旧环境完全一致
conda activate 新环境名称
注意事项
- 打包和安装的操作需要在相同操作系统、相同基础python版本的环境下执行,避免出现兼容性问题
- 如需留存环境依赖清单,可以在旧环境中执行
conda env export > environment.yml,后续可以直接用该文件创建完全一致的新环境:conda env create -f environment.yml
内容的提问来源于stack exchange,提问作者alessandro
相关产品推荐
相关产品推荐

