anaconda是十分方便的python全家桶,除此之外,anaconda還可以建立出python虛擬環境。可以說是十分強大了。
之前,我整理了一篇關於pip建立虛擬環境的博文:《pip建立虛擬環境》
當然,學會pip建立虛擬環境和conda建立虛擬環境的效果都是一樣。所以掌握其一就行了,或者根據實際情況使用其中的一種。
首先要明白為什麼要建立虛擬環境
我們經常需要復現別人的工程,不過每個開發者所使用的開發環境不盡相同,有的使用python2,有的使用python3,有的使用tf,有的又使用pytorch等等。那我們是否需要把所有的模組都裝好呢?
答案是可以的,不過你無法安裝多個版本的tf,如果你需要復現的工程是基於tensorflow 1.4.0的,而你自己的版本是1.9.0,是否要降版本來營造和人家一樣的環境呢?是否每次都要通過換自己本地的版本以達到工程的相容性呢?
虛擬環境可以很好地緩解這個尷尬
sh anaconda*.sh
就可以完成anaconda的安裝,記住需要配置好anaconda的環境變數。方法如《linux系統設定環境變數》
設定好以後,可以檢視conda下面安裝了哪些模組:
conda list
和pip list的用法是一樣的,我們可以看到詳細的模組資訊。
conda create -name my_env_name python=3.6
這樣就建立了乙個名字為my_env_name,基於python版本3.6的乙個虛擬環境了。注意,這裡和pip建立的虛擬環境不同,pip建立的虛擬環境會直接在當前目錄下生成乙個虛擬環境的目錄,啟用虛擬環境也需要指定這個目錄才行。而conda安裝的虛擬環境,預設把虛擬環境的目錄生成在anaconda安裝目錄下的env目錄下。所以,conda建立的虛擬環境有乙個很大的優點就是不用指定虛擬env的路徑,不過前提是你需要把conda的環境變數早早設定好。
我們看看conda虛擬環境的啟用指令碼:
source activate my_env_name
啟用之後,命令列的最前面就會出現虛擬環境的名字如下:
(my_env_name)wozuishuai@ak47-ml:~$
出現了前面那個小括號就代表以及進入了虛擬環境,那我們就可以用conda隨便裝模組了,只會影響到你的虛擬環境。
conda install -n my_env_name [package]
在這裡,我們可以明顯知道什麼時候該用conda建立虛擬環境以及什麼時候該用pip建立虛擬環境。
當我們覺得這個虛擬環境可能用得比較多,適用其他工程的時候,我們可以用conda來建立。這樣能夠全域性照顧,不需要每次指定路徑。
當我們覺得這個虛擬環境也許只在這個工程下用到,我們就用pip來建立,這樣不容易發生env目錄下的命名衝突,而且每次開啟工程目錄可以看到虛擬環境的目錄躺在列表裡,你就知道需要先啟用虛擬環境再run你的**了。
如果需要退出虛擬環境,可以用以下指令碼:
conda remove -n my_env_name --all
my_env_name對應的就是要刪除的虛擬環境名稱
我們可以對虛擬環境中所需要的模組列乙個心願列表,比如使用yml檔案來列:
name: my_env_name
dependencies:
- python=3.6
- pytest
- keras
- tqdm
- pillow
- pip:
- tensorflow
把上述內容放在yaml檔案裡,比如命名為env_config.yml
那我們想直接生成這麼乙個環境只需要:
conda env create -f env_config.yml
然後,用同樣的方式啟用虛擬環境就可以了。 用conda建立python虛擬環境
1 首先在所在系統中安裝anaconda。可以開啟命令列輸入conda v檢驗是否安裝以及當前conda的版本。2 conda常用的命令。1 conda list 檢視安裝了哪些包。2 conda env list 或 conda info e 檢視當前存在哪些虛擬環境 3 conda update...
用conda建立python虛擬環境
1 首先在所在系統中安裝anaconda。可以開啟命令列輸入conda v檢驗是否安裝以及當前conda的版本。2 conda常用的命令。1 conda list 檢視安裝了哪些包。2 conda env list 或 conda info e 檢視當前存在哪些虛擬環境 3 conda update...
用conda建立python虛擬環境
anaconda是十分方便的python全家桶,除此之外,anaconda還可以建立出python虛擬環境。可以說是十分強大了。之前,我整理了一篇關於pip建立虛擬環境的博文 pip建立虛擬環境 當然,學會pip建立虛擬環境和conda建立虛擬環境的效果都是一樣。所以掌握其一就行了,或者根據實際情況...