anaconda离线环境迁移(舍弃繁文缛节-直接复制粘贴完成环境迁移)

摘要:

真正的解决方案,就是直接把envs下面的环境,直接复制一份到新环境的envs目录下。


项目场景:

需要把python环境从一台服务器上复制到另一个服务器上,但是服务器不能联网。


找找资料

http://t.csdn.cn/FD6S4http://t.csdn.cn/FD6S4


发现问题

在按上述资料操作的过程中,遇到了文章里提到过的一个问题:也就是

问题描述:在打包导出环境时出现_CondaPackError错误
正常情况下采用上述方法可以实现环境的导出及迁移,但当在第二步安装所需要的包的时候,由于其他包的需要,可能会更新由Anaconda安装的包,主要是pip、setuptools、wheel等几个包,导致在使用conda pack进行环境导出时出现_CondaPackError错误,具体如下

_CondaPackError: 
Files managed by conda were found to have been deleted/overwritten in the
following packages:
 
- pip='9.0.1'
 
This is usually due to `pip` uninstalling or clobbering conda managed files,
resulting in an inconsistent environment. Please check your environment for
conda/pip conflicts using `conda list`, and fix the environment by ensuring
only one version of each package is installed (conda preferred).
————————————————
版权声明:本文为CSDN博主「FY_2018」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/FY_2018/article/details/119710831

原因分析

引用文章中,作者也有写,这里简单复述下。也就是被迁移的环境里,pip安装的包和conda安装的包版本冲突了。需要进行统一。进而要么把所有的包都用pip装一遍,要么用conda装一遍。这也就是繁文缛节的原因了。(我就想迁移一个库,我还得重新装一个库……况且现在这个库能用,重装了之后可能还不能用了)


解决方案(破除繁文缛节)

思路来源:我想着,原文章思路,也就是把原环境用conda pack 打包,然后复制压缩包,直接在新环境的envs下面解压。既然现在conda pack不行,那我为什么不直接手动打包呢,反正都是解压。

于是乎,真正的解决方案,就是直接把envs下面的环境,直接复制一份到新环境的envs目录下。亲测有效!

可能存在的问题:

Q1: envs目录在哪里?

A1: 在anaconda安装根目录里。

Q2: 如果envs目录下面没有环境怎么办?

A2: 那就用anaconda直接建立一个虚拟环境,复制你的base环境,envs目录下面就有环境了。

你可能感兴趣的:(python,conda)