对于生信工作者,有一个方便可用的环境可以极大地方便我们开展分析,conda可以让我们在非root的情况下较为方便地切换不同的工作环境。对于conda的一些具体的介绍,可以从生信技能树的文章中学习。 我想写一个我自己觉得相对常用的一些知识,作为自己的总结。
传送门
1 下载、安装、配置conda
对于日常工作来说,使用miniconda就足够,需要什么软件时再安装。由于国外的网络传输非常慢,我们可以从清华开源镜像网站下载,https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/。
目前已经更新到4.8.3版本,使用内置python3.8。我是用来安装到Linux环境下,所以下载完后直接sh *.sh,然后跟着提示走就好了。
2 创建以及激活环境(比如我们想要python2.7版本的环境)
##创建环境,指定python版本,以及可以预装一些需要的包。-n代表环境名称。conda env create -n PY2.7 python=2.7 pandas numpy##环境激活conda activate PY2.7##查看当前环境下安装的包conda list -n PY2.7##删除不想要的包conda remove packages_name##回到基本环境conda deactivate
3 其他常用命令
##查看当前conda版本conda --version##查看环境conda env list##删除环境conda env remove -n PY2.7##升级condaconda update --all -y##定期清理下载的缓存文件conda clean -a -y##删除没用的包,会检查哪些包没有在包缓存中被硬依赖到其他地方并删除conda clean -p##打包压缩为tar压缩包,可以帮助节省空间conda clean -t##查看配置conda config --show##搜索包conda search package##安装特定版本的软件,conda会卸载已安装版本,然后重新安装指定版本。conda install software=version
4 更换镜像源
为了让我们下载包更快一些,可以使用以下的操作切换清华镜像源(之前源失效了一段时间,不过还好又回来了),将这些加入到了conda的~/.condarc文件中。此操作会将逐条新添加的源放在最前面,也就是最后添加的将在第一行。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/proconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
当然,如果源失效了,也可以删除掉。
##如果想删除channelsconda config --remove channels 'defaults'
5 关于R的友情提醒
自己在配置好conda后,使用R,会提示缺少library,在我的报错中是缺少库文件 (之前忘了保存图了)。
.2:cannot open shared object file: No such file or directory
但是不在conda的环境下启动R就没事,使用 ` locate ` 整个服务器都没有发现类似的文件,这个时候需要使用conda安装libiconv才可以正常使用R。
之前搜索问题的时候,看到健明老师有过类似的问题,不过我们缺少的库文件名称不一样。大家如果遇到类似的问题,可以安装库试试。
6 写在后面
总结这些常用的知识点除了给自己一个总结加深印象的过程,还就是想让大家参考下自己的做法。之前自己的环境管理确实比较的混乱,经常性运行程序也不知道程序是哪个地方的。对此,我的建议是,对于那种非root非常容易安装的,还是不要用conda安装,在后面使用相关工具时,可以用绝对路径也可以赋值给一个变量进行使用。当然,也可以写入环境变量,看个人习惯。对于那种需要特定环境的,比如不同版本的python,不同版本的R之类,则建议用conda来操作。
对于某个项目,可以建立对应的环境,以便以后可以重复相关的操作。有些用到的软件,大版本更新后是会有较大的改动的,这样不方便结果的复现。