Anaconda
Python语言简洁,学习起来非常快,使用Python的科研工作者越来越多。Python拥有丰富的扩展包,这使得它可以轻松处理各种问题。
Python用于科学计算的包括但不限于如下:
- Numpy:提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库等。
- Scipy:提供许多科学计算函数库,包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等。
- Pandas:基于Numpy,提供了大量库和一些标准的数据模型,比如二维数组。
- Matplotlib:绘图包,旨在替代MATLAB。
Anaconda是一个集合,包括conda,Python解释器,一些第三方库。conda用于包管理和环境管理。包管理与pip类似,管理Python第三方库。conda将一切都看成包,包括conda本身和Python解释器。环境管理类似于virtualenv,能够允许用户使用不同版本的Python和不同的第三方库环境,并灵活切换。
用Anaconda来管理环境和第三方库将是非常方便的,而且自己安装这些库对新手来说是一个不小的挑战。
Anaconda包括了科学、数学、工程、数据分析中最受欢迎的300多个Python包,支持Python2/3, Windows/Linux/Mac,而且还是非常有好的安装包(.exe/.sh/.pkg)。一键安装科学计算中常用的包,爽!
安装Anaconda
在Linux上安装Anaconda非常简单。Anaconda带了很多包,体积非常大,为了节省空间也可以先装Miniconda,再装自己需要的包。
1 | sh Anaconda3-5.1.0-Linux-x86_64.sh |
安装过程中会提示安装的路径PREFIX=/home/chenwen/anaconda3,默认在用户的home目录,可以安装到其他地方。还会提示是否将此路径添加到用户的环境变量(/home/chenwen/.bashrc)。
安装Anaconda之后,输入如下命令验证Anaconda是否安装成功,并查看它的版本。
1 | conda --version |
修改源镜像
Anaconda安装成功之后,我们首先将软件源修改为清华大学的镜像,官方的帮助说明如下https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
。
各系统都可以通过修改用户目录下的.condarc
文件。Windows 用户无法直接创建名为 .condarc
的文件,可先执行conda config --set show_channel_urls yes
生成该文件之后再修改。修改.condarc
文件为如下内容后,即可添加 Anaconda Python 免费仓库。
1 | channels: |
运行conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
管理虚拟环境
有些包依赖特定版本的Python,或者依赖其他特定版本的包,与我们已有的Python环境不同。如果我们因此重装Python,或者重装一些软件包,就把已有的Python环境搞乱了,这时候虚拟环境就派上用场了。如果只是简单的学习Python,直接用基础环境就可以了,没有必要创建虚拟环境。
我们可以通过create命令来创建虚拟环境。
1 | conda create --name tensorflow python=3.5 |
这样我就创建了一个名叫tensorflow的虚拟环境,当然你可以用任何你喜欢的名字代替。我还指定了Python版本是3.5。环境创建完毕后,我们可以使用info命令查看所有环境。
1 | conda info --envs |
我看到这条命令的输出有tensorflow /home/chenwen/anaconda3/envs/tensorflow
,告诉我们tensorflow这个虚拟环境的路径。虚拟环境的实质就是创建了一个文件夹,把相关的包放在这里,并且把一些环境变量指向这里。如果需要切换到该虚拟环境,可以使用activate命令。
1 | conda activate tensorflow |
如果想取消激活,使用deactivate命令即可。
1 | conda deactivate |
如果想删除虚拟环境,使用remove命令。
1 | conda remove --name tensorflow --all |
当我们切换到某个虚拟环境后,就可以进行这个环境的包管理了。
管理包
查看安装的包,可以使用list命令。
1 | conda list |
如果你发现某个包默认没有装,比如scikit-learn,可以使用conda install 命令安装。
1 | conda install scikit-learn |
更新包,可以使用conda update命令
1 | conda update scikit-learn |
后记
Anaconda的功能非常强大,熟悉R的朋友可能知道Bioconductor,与此对应的有Bioconda。Bioconda不仅是装Python包,还能装很多其他生信软件。
此外,我还非常喜欢Anaconda带的IDE工具spyder,比起Python官方自带的IDLE强很多,但是又不复杂。