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
進入環境后,命令行中會提示相應的環境標志: