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

進入環境後,命令行中會提示相應的環境標誌:

相關文章
相關標籤/搜索