如何安装和初始设定并使用conda

如何安装和初始设定并使用conda,第1张

1. 该装anaconda还是miniconda?

anaconda可以认为是一个完整版本的conda,里面有很多已经装好的软件,miniconda是精简版,里面什么都没装,所有想用的软件都是现用现装,推荐装miniconda。

2. miniconda的安装

MacOS:

wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh

bash Miniconda3-latest-MacOSX-x86_64.sh

Linux:

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh

Win10 bash:

wget https://repo.continuum.io/miniconda/Miniconda3-4.3.21-Linux-x86_64.sh

bash Miniconda3-4.3.21-Linux-x86_64.sh

一顿yes之后,就可以了。关闭terminal再重新打开,输入conda,应该会显示很多选项。

3. 激活bioconda:

conda config --add channels r

conda config --add channels conda-forge

conda config --add channels bioconda

上述命令只需运行一次即可,以后都不用再运行这些了。

4. 更新conda:

首先要deactivate conda:

source deactivate

然后更新conda:

conda update conda

5. 使用conda:

创建一个名为bioinfo的environment:

conda create -y --name bioinfo python=3.7

然后激活bioinfo:

source activate bioinfo

装一个软件合集(来自biostar handbook):

curl http://data.biostarhandbook.com/install/conda.txt | xargs conda install -y

如果以后需要装这个软件合集里没有的软件,则只需:

conda install toolname

即可。

6. 更新biostar handbook提供的软件合集(推荐一年一次):

curl http://data.biostarhandbook.com/install/conda.txt | xargs conda upgrade

本篇介绍如何让linux在不激活任何环境时,调用python命令直接使用到conda的某个子环境。

首先说明本篇文章的工作原由,以及踩过的坑。

在之前的工作中,一般进行python开发都会使用conda进行包管理,以达到隔离多个环境的目的。例如:

问题来了,在一些场景中,外部程序需要调用服务器上的api,又无法做出 conda activate 的命令,命令是直接使用 python xxx.py ,这时候只能使用linux自带的python命令,或者conda的base环境的python命令。所以需要将环境搭建在linux的python或者conda的base。搭建过程中,遇到的问题来自两个方面:

解决方法:将linux默认的python做软链接,链接到conda的子环境。

创建环境: conda create -n child_env python=3.6

切换环境: conda activate child_env

安装pytorch: conda install pytorch torchvision cudatoolkit=10.0

安装tensorflow: conda install tensorflow-gpu

安装其他包: conda install xxx,xxx,...

先将老的链接备份: mv /usr/bin/python /usr/bin/python22

再做链接: ln -s /root/anaconda3/envs/child_env/bin/python3 /usr/bin/python

第一个路径需要改成自己的anaconda路径,child_env改成自己的环境名,第二个路径不用改。

先关掉conda环境: conda deactivate

再运行: python xxx.py

用这个方法,虽然解决了直接调用python命令的问题。但是引入了新的问题。

更换默认python版本

有时候在使用某些软件的时候,需要激活conda的环境,如果在搭建pipeline的时候,一般都是在程序内部进行activate env。在这里我用的是Perl搭建pipeline的。

刚开始想的比较简单,认为和以前一样,直接activate:

但是不行,直接就报错了:

这里表明没有进入conda的环境,设置有问题。

于是先使用source激活,再activate env:

接着报错: sh: 1: source: not found

接着在Perl中调用:

出现错误:

这里的错误:

首先编写一个用于activate的shell脚本:

保存后,接着在Perl中调用这个shell脚本:

在 bash 等 shell 中, source 是一个内置的函数,其意义在于读取文件并在本地解释这个文件,有点类似于 c 中的 #include

在现在的情况下面, source 没有任何意义,应该在脚本首行标注一下 shebang : #! ,告诉系统使用哪一个 shell 来执行这个脚本,或者直接告诉系统用的是什么: bash *****.sh

Conda activate not working

How to run “source” command (Linux) from a perl script


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7282728.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存