问题与背景
anaconda开发好的程序,在简单的项目中,需要部署到服务器上(此处专门针对win系统)。这里就一定会有一个移植的问题,往往问题点会出在:环境是内网,没有外网;安装的环境不能完全通过在线安装,也有安装包的形式;安装环境是混合的,不是单一的环境。 实际遇到的问题是:无网络,实现ananconda虚拟环境的移植,作为python中间件服务的基础环境。
参考资料
https://zhuanlan.zhihu.com/p/87344422 conda环境的迁移
方案与案例
问题:环境迁移后,创建新环境冲突的问题
如果是文件目录的直接粘贴,再通过pip安装一些包,就会出现anaconda没办法创建环境的问题。因为pip的包跟conda的包冲突了,可以这么理解。解决方案很简单只需要把anaconda目录下的pkgs文件删除掉就ok了。
最佳实践1:如何进行环境的迁移
最简单的粗暴的办法,就是在开发机器和部署机器上,安装一个相同目录的anaconda,所有东西,设置为严格一致。直接将开发机器anaconda目录中envs下的虚拟环境文件夹打包发到服务器ananconda对应目录下,粘贴即可。这种方式一般要求,两种机器,配置一样。
最佳实践2:如何进行环境的迁移
通过conda-pack 进行迁移。
# Pack environment my_env into my_env.tar.gz
conda pack -n my_env
# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o o