在使用python时,经常遇到的问题:python
pip安装库A,依赖库B-2.1版本shell
pip安装库C,以来库B-3.1版本,安装会提示库B的版本冲突错误。api
这种状况下就须要作环境隔离bash
conda自带环境隔离功能,能够有限隔离管理多个python环境python2.7
从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安装完成后,从新打开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
进入环境后,命令行中会提示相应的环境标志: