用conda創建python虛擬環境


anaconda是十分方便的python全家桶,除此之外,anaconda還可以創建出python虛擬環境。可以說是十分強大了。


之前,我整理了一篇關於pip創建虛擬環境的博文:《pip建立虛擬環境

當然,學會pip建立虛擬環境和conda建立虛擬環境的效果都是一樣。所以掌握其一就行了,或者根據實際情況使用其中的一種。

首先要明白為什么要創建虛擬環境

我們經常需要復現別人的工程,不過每個開發者所使用的開發環境不盡相同,有的使用python2,有的使用python3,有的使用tf,有的又使用pytorch等等。那我們是否需要把所有的模塊都裝好呢?

答案是可以的,不過你無法安裝多個版本的tf,如果你需要復現的工程是基於tensorflow 1.4.0的,而你自己的版本是1.9.0,是否要降版本來營造和人家一樣的環境呢?是否每次都要通過換自己本地的版本以達到工程的兼容性呢?

虛擬環境可以很好地緩解這個尷尬


我們在服務器上下載好anaconda以后,直接用

sh Anaconda*.sh

就可以完成anaconda的安裝,記住需要配置好anaconda的環境變量。方法如《Linux系統設置環境變量

設置好以后,可以查看conda下面安裝了哪些模塊:

conda list

和pip list的用法是一樣的,我們可以看到詳細的模塊信息。


conda安裝虛擬環境

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你的代碼了。

如果需要退出虛擬環境,可以用以下腳本:

source deactivate

查看Conda環境下所有的虛擬環境

conda info --envs

 


刪除Conda虛擬環境 

conda remove -n my_env_name --all

my_env_name對應的就是要刪除的虛擬環境名稱


使用文件直接配置虛擬環境的模塊包

我們可以對虛擬環境中所需要的模塊列一個心願列表,比如使用yml文件來列:

  1. name: my _env_name
  2. dependencies:
  3. - python=3.6
  4. - pytest
  5. - keras
  6. - tqdm
  7. - Pillow
  8. - pip:
  9. - tensorflow

把上述內容放在yaml文件里,比如命名為env_config.yml

那我們想直接生成這么一個環境只需要:

conda env create -f env_config.yml

 然后,用同樣的方式激活虛擬環境就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM