Anaconda复制移植
Anaconda复制移植
2020-5-27
背景说明:
有两台服务器分别为CPU、GPU,其中CPU连接外网,GPU与CPU在同一个局域网中,需要通过CPU作为跳板登陆GPU,且GPU不可以直接访问外网。
任务说明:想要在GPU上安装anaconda同时配置gpu版本的pytorch。
由于不能通过GPU服务器直接访问外网,所以需要通过CPU服务器来间接实现。
主要尝试了两种方法。
1. 利用anaconda版本控制功能
- 在CPU上安装anaconda,并在其中安装适配GPU上CUDA版本的Pytorch,具体安装功能可以参考pytorch官网。
- 在GPU上离线安装anaconda(需要与CPU上的anaconda版本相同,不然可能出现冲突),假设anaconda安装位置为
path_to_anaconda/anaconda
。
离线安装方法可以参考这里 - 将CPU上完整的anaconda文件包复制到GPU中如下位置:
path_to_anaconda/anaconda/envs/
- 在GPU上先查看一下已有的anaconda名称,命令:
conda info --envs
,然后根据列出来的anaconda的位置判断哪一个是我们刚刚复制过来的,然后激活:conda activate anaconda_name
这样,就成功的通过离线的方式在GPU上安装了pytorch,此时GPU上有两个版本的anaconda,其中 base 为第一次安装的,anaconda3是作为带有pytorch版本的。可以根据需要通过conda的版本控制功能进行灵活切换。
conda activate anaconda_path //激活路径为anaconda_path的anaconda
conda deactiva //注销当前激活的anaconda(不会删除)
注:这里需要进一步注明的是,上面是我在摸索整个流程的过程中采用的方案。更加完善的方法是,避免在CPU的base上安装其不适配的pytorch,应该现在CPU的anaconda/envs配置另外一个anaconda,再通过版本控制来对这一个anaconda安装适配GPU的pytorch,然后将该anaconda复制到GPU的path_to_anaconda/anaconda/envs/,这样会更合适,也避免了对CPU上anaconda的影响。
2. 在线anaconda环境复制移植
这种方法不适合我上面提到的背景,但是是我一开始调研的时候发现的一种anaconda环境在不同平台上进行复制移植的方法。
比如我们在一台机器上配置好了我们需要的anaconda,里面也额外安装了一些包,之后有有一个新的机器,我们希望在这个机器上也配置一个相同的anaconda环境。不想要再重新开始,就可用以下方法来实现:
整个完整的安装过程由于环境是离线的所以没跑通,不过研究的时候也踩了坑,就先记录一下。
- conda 导出已有环境
conda env export > name.yaml
已有的conda环境会被保存在 name.yamll文件中,这样可以根据该.yaml文件在其他机器上复现当前环境。
- 复现环境
将已有的.yaml文件复制到需要配置相同环境的机器上,并执行:
conda env create -f name.yaml
这是根据其他网上资料找的步骤,但是我自己实际操作时却遇到了问题,复现环境时遇到了如下错误:
这里/usr/local/anaconda3的确为另外一个在GPU上安装的anaconda,但我不可能把这个删掉。查看 env.yaml文件的内容:
红色圈圈标出的地方为name.yaml文件的开头和结尾,为环境的信息。
而用conda info --envs
查看GPU服务器当前的conda环境发现,已在/usr/local/anaconda3/
位置有一个名称为base
的conda,所以想要用name.yaml在GPU上再复现一个相同名称的conda会有冲突。
解决办法:将name.ymal文件开头的"name:base"更改一下,比如改为"name:base2",然后再执行命令:
conda env create -f name.yaml
就不会再报这个错误了,但是我的服务器由于不能联网无法下载相应的库所以还是没有办法复现成功。
Anaconda复制移植相关推荐
- Anaconda环境复制(移植)
背景 毕业设计时在本地虚拟机上使用了一个conda环境,租了阿里云服务器后需要将其搬过去.原先打算重新从零开始安装环境,但是装了半天未能成功,最后打算使用环境移植试试,发现可以正常使用. 服务器安全组 ...
- 【conda】conda环境的复制移植的两种方法
1. 环境复制 首先conda info --envs 查看当前有哪些环境. 执行 conda create -n [name] --clone [path] 等待完即可 备注:其中 name:是新环 ...
- Geoserver怎样设置地图shp文件为相对路径,可轻松复制移植
场景 GeoServer简介.下载.配置启动.发布shapefile全流程(图文实践): GeoServer简介.下载.配置启动.发布shapefile全流程(图文实践)_BADAO_LIUMANG_ ...
- Anaconda——复制Conda的虚拟环境
1 致谢 感谢网友tsq292978891提供的帮助, 原文链接如下: https://blog.csdn.net/tsq292978891/article/details/89204525 2 前言 ...
- Qt实现QChart实时绘制动态曲线,代码可复制移植。
本文逐代码实现实时监测传感器数据的界面可视化,在640个数据的时候可以实现1ms一次的刷新速度,当然实际的显示器可能达不到这么高的刷新率.具体效果如下图所示: 话不多说,创建好Qt工程后,要使用QCh ...
- chromium net android移植
Chromium net是chromium浏览器及ChromeOS中,用于从网络获取资源的模块.这个网络库是用C++编写的,且用了大量的C++11特性.它广泛地支持当前互联网环境中用到的大量的网络协议 ...
- windows下移植别人配置好的python环境
一般来说,我们在windows下配置python环境的时候可能会比较推荐用anaconda,那么有一个比较方便的anaconda环境移植方法,也就是说,如果我已经在windows上安装好了anacon ...
- Anaconda\Miniconda环境配置看这一篇就够了
关于conda,啰嗦几句 conda是一个配置隔离python环境的工具 因为有些时候我们需要不同版本的python或不同版本的pip模块(比如你需要跑两个从github上下下来的代码,他们的tens ...
- Oracle的高级复制、流复制、备库的区别
Oracle备份功能包括: 高级复制(Advanced Replication) 流复制(Streams Replication) 备库(Dataguard) 一 .dataguard: datagu ...
最新文章
- 怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!
- 学习jQuery之旅--使用炫酷的jQuery插件
- Django之静态文件
- flex基于svn协同开发
- php 输出json utf8,php json_encode utf-8中文问题
- flutter网络权限申请
- java垃圾回收 分代_Java分代垃圾回收策略原理详解
- Linux九大哲学原理,Linux/Unix设计思想(全新阐释开源哲学,Jon “maddog” Hall作序推荐)...
- 使用Docker安装的Tuleap-aio.查看admin默认密码
- iPhone文件系统:创建、重命名以及删除文件
- 电商设计中的一些概念
- PHP7中异常与错误处理与之前版本对比
- python语音合成并播放_Python:TTS语音合成技术,市场各大平台对比以及实现
- WebRTC之NACK、RTX 在什么时机判断丢包发送NACK请求和RTX丢包重传
- log4j WARN 和 SLF4J WARN 解决办法
- 全部驳回?元宇宙商标申请被国家知识产权局“劝退”
- 第三百篇博客:写给自己的总结
- slotformatcombinations_用于确定无线通信系统中的时隙配置的方法和设备与流程
- 如何将字符串转换为日期– Java
- 香港汇丰银行开户需要提供什么资料
热门文章
- Python实现多元线性回归方程梯度下降法与求函数极值
- 恒必达智能蓝牙耳机——解放自我的突破
- linux centos主题,Centos7个性化桌面美化
- 计算机辅助翻译论文的应用环境,计算机辅助翻译(CAT)技术在现代翻译中的应用探析.pdf...
- licheepi nano BS8112A触摸按键之长按短按
- 原厂商具备 信息安全服务资质 安全工程一级哪个服务器厂商有,信息安全服务资质(安全工程类二级)...
- 操作系统 段页式存储管理
- 下载 Cisco Packet Tracer Mac OS版本也有
- uniapp 前端获取微信小程序 URL Link (HTTPS调用)
- FIFO生成器V2.3