anaconda安装与使用

[TOC]

参考链接

conda文档

Linux下Anaconda的安装使用与卸载

anaconda的使用和环境管理

安装anaconda

参见Linux下Anaconda的安装使用与卸载

  • 在PC上,去Anaconda官网,获得安装包的下载链接

    • Download for Your Preferred Platform下,选Linux,根据需要选Python版本和操作系统位数
    • 右键点击下载按钮,选复制链接,如https://repo.continuum.io/archive/Anaconda2-4.4.0-Linux-x86_64.sh
  • cd到服务器上自己d的用户目录

    • 下载安装文件b

      wget 上述链接
    • 查看安装文件是否下载成功

      ls

      看见有形如 Anaconda3-4.0.0-Linux-x86_64.sh的文件说明下载成功

    • 执行安装文件,如

      bash Anaconda2-4.4.0-Linux-x86_64.sh
    • 整个过程点几下回车,或者选yes就好了。

    • 但到最后一步,会提示是否把anaconda加入到系统环境变量中,选no(直接回车即可,默认就是no)

      conda安装

    • 安装完成后,

    ls
    # 会有anaconda2或者anaconda3文件夹, 分别对应python2 或 python3
    • 此时若终端中输入conda,发现command not found。这是因为,尚未向用户环境变量加入ananconda

配置

  • 向用户环境变量加入ananconda
# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH=~/anaconda2/bin:$PATH' >> ~/.bashrc
# 激活bashrc以立即生效
source ~/.bashrc
  • 如用户登录服务器后,conda无l法使用

    • 症状:conda命令、conda虚拟环境、conda-forge安装的软件无法使用,ls显示的文件不是彩色的
    • 对策:重新激活bashrc
  • 此时,用户目录下就可以正常使用conda了。测试方法如下

# 调出conda
conda
# 查看安装了那些包
conda list
# 查看anaconda是否成功劫持python命令
which python
# 若返回/home/$USER/anaconda2/bin/python则成功
  • 测试anaconda预装的软件能否打开
# jupter notebook
jupyter notebook
[I 11:38:51.999 NotebookApp] Serving notebooks from local directory: /home/$USERliang
[I 11:38:51.999 NotebookApp] 0 active kernels
[I 11:38:51.999 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=2f2a56290a357f0ab3aa3be983091614474113ca24f9edc1
[I 11:38:52.000 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 11:38:52.000 NotebookApp] No web browser found: could not locate runnable browser.
[C 11:38:52.000 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=2f2a56290a357f0ab3aa3be983091614474113ca24f9edc1
# spyder
spyder
QXcbConnection: Could not connect to display
Aborted (core dumped)

卸载

  • 直接删除用户目录下的anaconda文件夹即可
rm -rf ~/anaconda2
  • 更改用户环境变量为系统的python
echo 'export PATH=/usr/bin/:$PATH' >> .bashrc
  • 测试python能否使用
which python
# 得到 /usr/bin/python 则说明更改成功
python
pip
# 都能成功打开则说明成功

conda下安装包/软件

python的包

conda命令概述

conda 命令             # 在当前虚拟环境下执行
conda 命令 -n 虚拟环境名 # 在指定虚拟环境下执行
# 如 conda -n python2.7 list,  conda -n python2.7 install numpy

包的管理

conda list       # 查看已装包
conda search  包 # 查找包信息——从网上获取所有版本的这个包的列表,标 * 的是已装的
conda install# 安装包
conda -c channel install# 通过指定channel安装
# 如 conda -c conda-forge install tmux
# 如 conda install -c bioconda coreutils
conda update     # 更新包
conda remove     # 卸载包——会删除包所在的文件夹

conda与pip的区别

  • install

    • conda install会自动列出,要装某包,缺何版本的哪些依赖包,问你要不要一并装掉,只需按y,即自动安装。还能装非python的包,只要anaconda cloud上有。
    • pip install遇到缺依赖包,则直接终端安装,且并不总能报错说缺什么包。只能装python的包。

    故,pip install装不上去的包,用conda install常能装上。

  • list

    • conda list可见pip list可见的所有包:最新版的conda从conda/env/环境名称/lib/python3.6/site-packages/文件夹中搜索已装的包,不依赖于pip,可显示各种方式(含pip安装、自己make的)安装的包
    • pip list可见初创conda环境中所有的包,但不可见之后conda安装、和自己make的包
  • uninstall

    • conda不能卸载用pip安装的包:因为conda卸载时,要分析包的依赖。但pip装的包,conda不知其在conda上的来源,故无法分析。
    • pip不能卸载环境创建后用conda安装的包:pip list 可见的包才可pip卸载
  • 克隆环境

    使用conda克隆环境(可以跨电脑克隆),只要在conda/env/环境名称/lib/python3.6/site-packages/下,不论以何种方式(如pip, conda, 自己make)安装的python包,都会克隆

非python软件

anaconda是一个用户环境,而非单纯的python包管理器,其下不仅仅可以安装python的包,还可以通过conda forge/biconda等通道(channel)安装其他软件

安装

  • 登录conda cloud,在搜索栏搜索软件名称,如tmux

  • 得到tmux软件列表,点击 conda-forge 下的 tmux 2.3

  • 进入tmux2.3的安装网页,会显示安装命令,如conda install -c conda-forge tmux

  • 在用户目录下执行上述命令

效果

  • 之后该用户登录后,不论在何目录下,均可运行tmux

安装网页链接与安装命令

tmux

conda install -c conda-forge tmux

htop

conda install -c conda-forge htop

coreutils

conda install -c bioconda coreutils

安装后,在htop中可见所有用户的进程

虚拟环境

参见anaconda的使用和环境管理

  • 功能简介

    anaconda的各虚拟环境相互独立,可装有不同包,可为多个python版本(如python2,python3,不论你装的是anaconda2还是anaconda3)

  • 创建环境

conda create -n 环境的名字(如conda_python2.7) python=2.7
# -n 即 --name
# 还可以写其他python版本号
  • 查看环境
conda info -e                 # -e 即 --envs  , enviroments之意
root                  *  /home/$USER/anaconda2 # * 表示当前处在这个环境下
# root环境,即用户环境变量中的python路径
conda_python2.7          /home/$USER/anaconda2/envs/conda_python2.7
  • 切换环境
source activate 环境的名字(如conda_python2.7) #Linux,OS X
activate 环境的名字(如conda_python2.7) # Windows
# 效果如下
(conda_python2.7)conda info -e        # (conda_python2.7)表示处在虚拟环境里
root                     /home/$USER/anaconda2         # * 表示当前处在这个环境下
conda_python2.7        * /home/$USER/anaconda2/envs/conda_python2.7
  • 返回root环境
(conda_python2.7)source deactivate # Linux,OS X
(conda_python2.7)deactivate # Windows
# 效果为 (conda_python2.7)消失,* 标记到 root
  • 克隆环境
conda create -n 新环境名字 --clone 原环境名字或原环境所在路径(anaconda/envs/原环境名)

原环境名字 :

  • “base” (等价于"root"): conda默认环境

  • 其他conda环境: anaconda/envs/下的文件夹名即是,或conda info -e可见

原环境所在路径:

  • 可将别的电脑上anaconda/envs/原环境名文件夹拷过来,其环境下用conda和pip安装的python与非python包,克隆后仍皆可用 锚点

  • 也可是本机上的anaconda/envs/原环境名文件夹

  • 删除环境

conda remove -n 环境名字 --all

不兼容

matplotlib

  • 问题描述

    mac系统上的虚拟环境(不论是anaconda还是virtualenv的)中,matplotlib无法使用:

    import matplotlib.pyplot时,显示

    RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework…(略)…See ‘Working with Matplotlib on OSX’ in the Matplotlib FAQ for more information.

  • 解决方法1

    在~/.matplotlib下,新建matplotlibrc文件,写入"backend : TkAgg"

echo "backend : TkAgg" > ~/.matplotlib/matplotlibrc

​ 该方法可使得虚拟环境能用matplotlib,但不影响conda的root环境、操作系统的python使用matplotlib

  • 解决方法2

    每次在虚拟环境下用matplotlib时,python代码中这样import

import matplotlib       # 先import它,以便下一行
matplotlib.use('TkAgg') # 加入此行,之后可import matplotlib中的各种模块
import matplotlib.pyplot as plt # 例如

报错

anaconda报错 ImportError: No module named conda.cli

参考

症状

conda
Traceback (most recent call last):
  File "/home/haoyu/ENV/localENV/anaconda3/bin/conda", line 12, in <module>
    from conda.cli import main
ModuleNotFoundError: No module named 'conda'

对策

更新式重装
bash Anaconda3-2018.12-Linux-x86_64.sh -u

安装过程中选择之前的<anaconda根目录>

注:bash Anaconda3-2018.12-Linux-x86_64.sh -h 显示 -u 表示 “update an existing installation”,如此更新式重装anaconda,但anaconda的base环境及其他自定义环境均会保留

重装

若依旧不能解决上述bug,则删掉之前的<anaconda根目录>,然后重装anaconda

bash Anaconda3-2018.12-Linux-x86_64.sh

anaconda的base环境及其他自定义环境均不会保留