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 out_name.tar.gz # Pack environment located at an explicit path into my_env.tar.gz conda pack -p /explicit/path/to/my_env # Unpack environment into directory `my_env` mkdir -p my_env tar -xzf my_env.tar.gz -C my_env # Use Python without activating or fixing the prefixes. Most Python # libraries will work fine, but things that require prefix cleanups # will fail. ./my_env/bin/python # Activate the environment. This adds `my_env/bin` to your path source my_env/bin/activate # Run Python from in the environment (my_env) $ python # Cleanup prefixes from in the active environment. # Note that this command can also be run without activating the environment # as long as some version of Python is already installed on the machine. (my_env) $ conda-unpack
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)