Conda是一种开源的软件包和环境管理软件,用于安装和转换不同版本的软件包及环境。其专为Python设计,可用于Mac、Linux和Windows系统。
Conda有两个主要的版本,Anaconda和Miniconda,前者包含一些常用软件包,后者是精简版,根据需要安装软件包。考虑到用于生信工作一些常用包反而可能并不常用,我个人建议下载精简版。而实际上也确实如此,在下载Anaconda之后,其默认环境中的包对我目前的代码运行明显不足。
1.2 Conda下载与安装Miniconda下载地址:https://conda.io/miniconda.html
选择最新的Windows64位版本的Miniconda进行下载和安装,并完成注册。过程无注意事项。
2 软件安装 2.1 以Python环境进行测试在功能上,Conda可以提供不同版本的python环境,因此可以取代单独下载安装的Python环境,辅以PyCharm等IDE即可。
Conda闪退,无法打开,怀疑与本电脑已安装的Python3.9有关。(实际上是conda.exe并非打开conda的正确方式,将在第三部分解释)
在系统环境变量中找到对应之前安装Python的路径并删除,再直接将原先安装的整个Python文件夹拷贝到envs的目录下。
依旧无法运行,选择重新安装Anaconda 3。在清华镜像中选择目前最新的Anaconda 3 Windows64位版本镜像,下载并安装。由于上一次安装未添加其为系统变量,这次在安装时注意添加。
通过Anaconda Navigator.exe成功运行,同时在已下载的PyCharm社区版上添加Conda编译器。
在cmd中输入代码准备Python 3.8.7虚拟环境,env名称为py:
conda create -n py python=3.8.7
发现Anaconda 3中没有提供该版本的Python:
通过查阅Anaconda Navigator提供的Python环境列表也可发现没有该版本:
根据cmd返回的内容进入anaconda.org进行检索,依旧没有可用结果。
直接使用系统配置的Python 3.9.7进行安装。(后续发现较新版本Python和很多未更新的包兼容性较差,故使用3.7.11版本.
2.2 批量安装python包首先安装常见的blast, mafft, bwa, tophat, tophat2。
conda install blast conda install mafft conda install bwa conda install tophat conda install tophat2
由于上述软件全部没有提供给win64平台的版本,略去。建议长期从事生信分析的同学尽快更换Linux系统,不要使用虚拟机。
blast是常用的序列比对搜索工具,mafft用于多序列比对分析,后三者是主要的RNA序列分析工具。
然后安装一些本实验室目前使用的一些包。
如数据库构建:scrapy, mysqlclient, pymongo;
文本挖掘和深度学习:TensorFlow、SciKit-learn, Theano, Keras;
其中SciKit-learn需要先下载SciPy才可使用。
其中mysqlclient包需要3.8以下的某些版本才可安装,故而统一使用3.7.11。
考虑到需要安装包比较多,每个需要的时间各有不同,如果每安装一个就输入一次代码非常麻烦,我决定采用代码方法批量下载。
在requirements_conda.txt文件中分行输入所需下载的Python包。
以如下代码转换路径,并以文件中包含的包名称进行下载。
(base) C:UsersRxnFinder>d: (base) D:>cd D:package (base) D:package>conda install --file=requirements_conda.txt
安装并不顺利,有大量报错。可能需要手动安装避免出现的版本、证书等错误。
在手动安装后发现,其中部分包已经被anaconda 3自动安装,同时anaconda也不再报告冲突错误。这体现出目前采用的批量安装方法存在一种可能的问题,将于下一部分中讨论。
3 心得体会- 认真阅读conda官网提供的说明文档。_conda.exe不是打开conda的正确方式,应当使用anaconda navigator、anaconda prompt以及cmd等进行操作。
- 在不添加系统变量的情况下,是无法在cmd中使用conda的。在安装过程中勾选添加conda环境变量的选项即可,不建议安装后手动操作。
- 虚拟机操作Linux系统时,一个典型的问题就是慢,作为前期练手或许是合理的,但如果进入实际操作环节,需要长期进行生信分析还是建议直接使用Linux系统。
- 对于先前出现的批量安装错误问题,我的看法是,不应当在同一环境下安装过多的包,根据实际需求进行取舍。可以看到科学计算相关的包因为经常更新,和部分数据库管理等不常更新类型的包经常出现冲突这也体现出许多python项目以多个文件组合的合理性,不同部分使用不同环境,避免不同包之间的冲突。
举例而言,爬虫相关的包放一个环境。数据库管理放一个环境。科学计算放一个环境。一般而言共同实现某种功能,且比较常用的包应当不太容易出现冲突问题,这是我在实践中产生的感知。
根据实践中发现的问题,mysqlclient包需要3.8以下版本的Python,其他包都能够在3.9.7版本下安装。
我将在python 3.7.11环境下,安装mysql相关的包,用于关系数据库管理。为便于使用,也将pymongo安装。
用于爬虫的主要几种包,在实际操作中没有出现冲突,便放入3.9.7环境,安装selenium,scrapy,requests和beautifulsoap4四个包。



