前言:个人认为Anaconda比pip使用起来要方便很多,因为它创建虚拟环境和下载各种库都很方便。但是有时候conda的安装方法中没有某些库,必须使用pip来进行安装。所以,主要用Anaconda,偶尔用pip补充,两者并不冲突。

1. 安装Anaconda

下载地址:https://www.anaconda.com/download/

选择相应的版本,这里我们选择Python 3.7, 64-Bit (x86) Installer (637 MB) (点击这个链接可以直接下载)

或者直接在Ubuntu系统的命令行里输入

wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh

下载完成后,输入以下命令执行所下载的安装程序:

bash Anaconda3-5.3.-Linux-x86_64.sh

然后根据提示一步一步安装即可。

注:

  1. 安装过程中会提示是否要把anaconda添加到环境变量中,根据经验最好选择是的
  2. 如果在1中选择是的,则需要使用以下命令使得环境变量中的更改生效:
cd ~ && source .bashrc

1.1   为了下载库的时候速度更快,更换conda下载源为清华大学镜像

参考:https://blog.csdn.net/huludan/article/details/52711550

运行以下两行命令即可:

conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
conda config --set show_channel_urls yes

2. 创建与激活虚拟环境:

参考:https://segmentfault.com/a/1190000005828284

# 创建虚拟环境
~/anaconda3/bin/conda create -n py3 python=3.6 # 激活虚拟环境
source ~/anaconda3/bin/activate py3

3. 在不同的ubuntu主机之间拷贝Anaconda的虚拟环境:

有两种方案,

  • 第一种是将所有虚拟环境的文件导出,在另一台机器上导入,无需从互联网下载文件,相当于本地移植
  • 第二种是将原来的虚拟环境中已经安装的库的名字和版本号导出成索引文件,从另一台机器上读取这个索引文件,并根据它从互联网重新下载相应的库

分别参考:

其中方案二是摘抄的某篇文章A,文章A是转载的文章B,文章B算是非常有工作量,主要是翻译的官方文档https://conda.io/docs/user-guide/getting-started.html。所以也欢迎查阅官方文档。

注意:根据方案1中参考文章的说法,

移植过来的环境只是安装了你原来环境里用conda install等命令直接安装的包,你用pip之类装的东西没有移植过来,需要你重新安装。

具体做法:

方案一:文件复制

# 复制虚拟环境文件到新的主机上
# 虚拟环境文件的位置一般在
cd ~/anaconda3/env/your_env_name # 根据原来的文件恢复虚拟环境
conda create -n env_name --clone ~/path

方案一我并没有实践过,但是理论上没什么问题,所以放在这里。我使用的是方案2,因为网速比较快,懒得拷贝文件了,直接重新下载好了。

方案二:索引导入导出

# 导出已有环境:
conda env export > environment.yaml # 将environment.yaml文件复制到新主机上之后
# 根据索引文件创建并恢复虚拟环境:
conda env create -n your_env_name -f environment.yaml

4. 如何备份虚拟环境:

有时候配置好的虚拟环境可能会后续被别的版本号升级造成的冲突所破坏,所以时不时的备份很重要。

方法:通过上述的导出索引的方式备份即可,哈哈

Ubuntu系统下Anaconda使用方法总结的更多相关文章

  1. 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~

    在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~ 不需要额外购买GPS设备. 将手机GPS数据通过蓝牙传输给计算机使用,当然通过类似方 ...

  2. Ubuntu系统下Jenkins的git构建基本方法

    上一博文讲到了本地脚本的构建方法. 本篇博文主要讲“Ubuntu系统下Jenkins的git构建基本方法”. 点击保存后即可完成简单的构建. 构建触发器 这个触发器是决定什么时候触发构建,可以设置为定 ...

  3. linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)

    linux ubuntu系统下,adb不是内部命令 原文地址 linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开 ...

  4. ubuntu系统下创建软件桌面快捷方式

    转自ubuntu系统下创建软件桌面快捷方式 默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制- ...

  5. Tex_安装_在Ubuntu系统下

    $\LaTeX$是一个强大的排版软件,在数学公式.表格.甚至是科学绘图方面有着独特优势.本文在Ubuntu系统下,整理Tex安装相关的操作,以为备忘.所引链接都未同作者商量,如有不妥望及时告知. 命令 ...

  6. 64位Ubuntu系统下ROP攻击

    64位Ubuntu系统下ROP攻击 基础知识 ROP攻击 ROP全称为Retrun-oriented Programmming(面向返回的编程)是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可 ...

  7. ubuntu系统下Python虚拟环境的安装和使用

    ubuntu系统下Python虚拟环境的安装和使用        前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开 ...

  8. ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

    首先感谢“巧克力味腺嘌呤”的博客和Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操作,发现有一些不同,也出现了很多错误,因此做此教程,为新手服 ...

  9. Ubuntu系统下Import cv2提示no modules ...错误

    最近利用pycharm在Ubuntu系统下调试一个Python项目,将pycharm的解释器从python2.7更换到python3.4后,程序中的Import cv2提示no modules nam ...

随机推荐

  1. 13、属性的get(存)和set(取)器

    原因:当对年龄重新进行赋值的时候就会调用set方法,然后进行判断,如果赋值小于10就会抛出异常.

  2. Oracle单机Rman笔记[4]---RMAN联机备份

    备注:RMAN备份(仅支持基于spfile的备份,不支持基于init.ora配置的备份) 练习:开启ARCHIVELOG模式 \为归档的重做日志被指FRA和单独的归档日志目标 SQL>show ...

  3. https环境搭建(本地搭建)

    1.创建自签名证书 2. 在iis中绑定https 先解析一个域名. 运行网站 示不安全,点击继续浏览即可.在实际的环境中,你拿到的是一个实际的证书,所以不会产生类似的报告安全证书有问题.

  4. fastjson对象转为json字符串日期格式变为时间戳问题

    今天尝试将map集合转为json对象时遇到一个问题.map中的value为日期格式如"2019-03-01",在使用JSONObject.toJSON(map).toString( ...

  5. What to do when you have small dataset - 拥有小型数据集时该怎么办

    I'm trying to train a classifier with neural network, but I've got too small datasets. Each class ha ...

  6. 记录PHP的执行时间

    网上不少误导信息,实际上这个答案在PHP源码中的Zend文件夹下bench.php是有的 在此纠正下网络上复制粘贴造成的错误.希望后来人少踩点坑. function getmicrotime() { ...

  7. Forth 文本解释程序

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  8. 201671010142 2017-2 《java第十一章学习感悟》

    事件处理基础 事件源,事件监听器,事件监听器  监听器接口的实现,监听器对象所属类必须实现与事件源相对应的接口,即必须提供接口中方法的实现. 适配器类 当程序用户试图关闭一个框架窗口时,Jframe对 ...

  9. SQL-58 获取有奖金的员工相关信息。

    题目描述 获取有奖金的员工相关信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...

  10. Beta阶段冲刺二

    Beta冲刺二 1.团队TSP 团队任务 预估时间 实际时间 完成日期 对数据库的最终完善 120 150 12.2 对学生注册功能的完善--新增触发器 150 140 11.29 对教师注册功能的完 ...