conda进行python环境隔离

1、环境隔离的问题

在使用python时,常常遇到的问题:

pip安装库A,依赖库B-2.1版本

pip安装库C,以来库B-3.1版本,安装会提示库B的版本冲突错误。

 

这种情况下就需要做环境隔离

conda自带环境隔离功能,可以有限隔离管理多个python环境

 

2、安装conda

https://www.anaconda.com/distribution/下载anaconda, 我这里下载的是Anaconda3-2019.07-Linux-x86_64.sh

转到下载目录下, 执行命令安装anaconda:

bash Anaconda3-2019.07-Linux-x86_64.sh

根据提示安装,特别是最后的conda init询问,直接点yes

 

3、备份conda原始环境

conda安装完成后,重新打开shell,或者执行一次source ~/.bashrc后, 会默认进入base环境,base环境包括了anaconda默认安装的大量库。

由于后续可能会基于base环境安装各种附加库,所以,一般先进行base环境的备份,方式就是创建一个新的backup环境,直接从base环境中克隆

创建backup环境的命令如下:

conda create -n backup --clone base

上述指令表示从base环境中clone一份新环境,新环境名字为backup

 

4、创建项目环境

备份之后,就可以基于backup环境,克隆各种项目环境了

比如,我需要创建一个用于富途量化开发的环境:

conda create -n futu --clone backup

在该环境下,我需要安装futu-api:

pip insall futu-api

那么futu-api库只有在该环境中才有,在base、backup中都不存在。

 

如果觉得base环境过于臃肿,可以创建一个新的简洁环境, conda可以管理多个python,即使python的版本不一样,这个是比venv强大的地方。

创建一个python3.7的简洁环境:

conda create -n py32 python=3.7

 

创建一个python2.7的简洁环境:

conda create -n py27 python=2.7

 

注意:创建环境时,如果只是指定了名字,没有指定package,那么实际上指向的都是同一个环境

如:

conda create -n test1
conda create -n test2

上述的test1和test2环境中,隔离的只是conda install的内容,而pip安装的内容完全共享,会相互干扰,这是因为使用了同一套python环境的缘故, 所以一般不要这么做。

 

5、环境切换

通过conda activate <envname>进行环境切换

通过conda deactivate退出环境

 

如,进入futu环境:

conda activate  futu

进入环境后,命令行中会提示相应的环境标志:

 

posted @ 2019-09-12 00:40  绿色冰点  Views(2435)  Comments(0Edit  收藏