在使用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
進入環境後,命令行中會提示相應的環境標誌: