leoatchina的博客

学习Anaconda过程中的一些笔记,或者说踩过的坑

Anaconda概述

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。

  • 包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
  • Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版
  • conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身。所以,conda打破了包管理和环境管理约束,能非常方便地安装各种python
  • conda和virtualenv: 在我看来,conda是用于科学计算环境布置,virtualenv主要是用于web服务。

Anaconda安装

https://repo.continuum.io/archive/ 下载最新版的 Anaconda
要说明的是, Anaconda有for python2和python3的版本,不过除了这个不同,其他基本没什么区别,我的生信服务器默认是python2,安装了Anaconda2
可以直接用wget下载 ,wget -c https://repo.continuum.io/archive/Anaconda2-4.3.0-Linux-x86_64.sh
不用root安装 ,直接安装到当前用户bash Anaconda2-4.3.0-Linux-x86_64.sh,会安装在~/anaconda2
注意运行路径,在安装anaconda时,会提醒你在~/.bashrc里加一句export PATH="~/anaconda2/bin:$PATH",但如果你是和我一样,是用zsh为shell,请注意在~/.zshrc里加上这一句
用户安装的不同的python环境都会被放在~/anaconda/envs下,可以在命令中运行conda info -e 查看已经安装的环境,当前已被激活的环境会显示有一个星号或者括号

换成更快的服务器

conda的服务器在国外,如果直接去升级安装会很慢,要换成清华的镜像
如果不做这一步,非常容易出现不能升级安装conda包的情况

1
2
3
4
# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

conda的环境管理

Conda的环境管理功能允许我们同时安装若干不同版本的Python,并能自由切换。对于上述安装过程,假设我们采用的是Python 2.7对应的安装包,那么Python 2.7就是默认的环境(默认名字是root,注意这个root不是超级管理员的意思。
比如我的python的是2.7.13,运行python -V,会显示Python 2.7.13 :: Anaconda 4.3.0 (64-bit)
如果我要使用 python3.5,那就安装一个起名为python35的环境

1
2
3
4
5
6
7
8
9
10
11
12
13
conda create --name python35 python3.5
# 安装好后,使用activate激活某个环境
activate python35 # for Windows
source activate python35 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python35的字样,实际上,此时系统/做的事情就是把默认2.7环境从PATH中去除,再把3.5对应的命令加入PATH
# 你可以用 `which python`或者 `python -V`查看
# 如果想返回默认的python 2.7环境,运行
deactivate python35 # for Windows
source deactivate python35 # for Linux & Mac
# 删除一个已有的环境
conda remove --name python35 --all

conda的包管理,和pip类似,比如你想安装scipy

1
2
3
# 安装scipy
conda install scipy
# conda会从从远程搜索scipy的相关信息和依赖项目,对于python 3.4,conda会同时安装numpy和mkl(运算加速的库)

conda的一些常用操作如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查看当前环境下已安装的包
conda list
# 查看某个指定环境的已安装包
conda list -n python35
# 查找package信息
conda search numpy
# 安装package
conda install -n python35 numpy
# 如果不用-n指定环境名称,则被安装在当前活跃环境
# 更新package
conda update -n python35 numpy
# 删除package
conda remove -n python35 numpy

conda将conda、python等都视为package,因此,完全可以使用conda来管理conda和python的版本,例如

1
2
3
4
5
6
7
8
9
10
11
12
# 更新conda,保持conda最新
conda update conda
# 更新anaconda
conda update anaconda
# 更新python
conda update python
# 安装python3.5的anaconda
conda install -n python35 anacodnda
# 然后你会看到要安装这么多包!!!!!!

你会看到这么多包!

布置jupyter nookbook

首先安装下ipython

sudo yum install ipython

生成配置文件

jupyter notebook –generate-config
生成的文件为~/.jupyter/jupyter_notebook_config.py

生成密码

1
2
3
4
5
6
ipython
In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:7467b7351f12:79fc65998**************3003b87f3'

记录下这个 sha1值,以后要用到

生成jupyter配置文件
jupyter notebook --generate-config
以上将会在 ~/.jupyter/ 下创建默认config 文件: jupyter_notebook_config.py

修改jupyter配置文件 ,vim ~/.jupyter/jupyter_notebook_config.py

1
2
3
4
5
6
c.NotebookApp.ip = '*' #任何ip都可以
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:209f151dcd7f:a730a81fd00********3ec0a6aa31'#设置密码的时候生成的sha1
c.NotebookApp.port = 8888# 设置未被使用的端口
c.NotebookApp.notebook_dir = u'/mnt/projects' # Notebook启动目录

启动jupyter

jupyter notebook
然后你通过 http://ip:8888就可以访问你的工作目录了

参考

Anaconda使用总结 ypyb PeterYuan
Jupyter notebook 服务器端部署