Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

首先使用的虚拟环境的迁移方法是使用.yml文件来实现。
试了把Linux平台上的Ananconda 虚拟环境迁移到mac osx平台,会报错,找不到可安装的包,因为不同平台的包是不一样的。

那么,我就想到,可以修改python包的下载镜像地址(channel)为支持osx的channel是不是可以呢?

经过测试,是行不通的!
原来,根本原因是python在Windows,Linux,osx不同的操作系统下的包是不同的,每个版本号后面的一串字符就类似于手机的***,就是指示用于不同环境下的。
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

又有一个想法,可否把后面的***去掉,而只保留版本号来让系统自动去选择适合本系统的包呢?
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

果然,当我把指示的不能找到的包的版本后面的***去掉后,再来运行,提示找不到的包就只剩下两个了。

再试着把最后找不到的两个包的版本去掉。
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

把这两个包也去掉,最后成功安装了这个环境
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

所以,在不同环境下也是可以实现Anaconda的虚拟环境的迁移的。但是某些指定系统下才有的包是无法迁移过来的。

这种使用.yml的配置文件来迁移的方法还是不理想,最好是直接把整个环境文件拷贝粘贴最好,这样既快捷,又适用于无法联网或网速不佳的新的环境。当然,只能是相同平台间的迁移。
所以在Linux下进行了测试。

经测试,直接把一台Linux机上的Anaconda envs下的某一个环境整体迁移到另一台Linux机上的Anaconda envs下可以成功启动该环境。
来源:
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)
复制到新的机器的Anaconda envs路径下:
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)

另外需注意:
1)这里我安装的两个anaconda是同版本的,不同版本的还没有测试
2)新环境需要使用如下命令启动:
source activate <新环境的名称>

本来先使用了conda activate <新环境的名称> ,但是提示错误。
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)
使用了上面的命令后可以**新环境。
然后再来用这条命令却可以了,比较奇怪,怀疑是默认对于新环境总是要先用source**一下?
Anaconda虚拟环境跨平台迁移和直接整体迁移(不用.yml文件和重新下载package)