conda进行python环境隔离

一、环境隔离的问题

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

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

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

 

这种状况下就须要作环境隔离bash

conda自带环境隔离功能,能够有限隔离管理多个python环境python2.7

 

二、安装conda

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

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

bash Anaconda3-2019.07-Linux-x86_64.sh

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

 

三、备份conda原始环境

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

因为后续可能会基于base环境安装各类附加库,因此,通常先进行base环境的备份,方式就是建立一个新的backup环境,直接从base环境中克隆开发

建立backup环境的命令以下:

conda create -n backup --clone base

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

 

四、建立项目环境

备份以后,就能够基于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环境的缘故, 因此通常不要这么作。

 

五、环境切换

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

经过conda deactivate退出环境

 

如,进入futu环境:

conda activate  futu

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

相关文章
相关标签/搜索