Python環境管理
什么是Anaconda
Anaconda是專注於數據分析的Python發行版本,包含了conda、Python等190多個科學包及其依賴項。Anaconda通過管理工具包、開發環境、Python版本,大大簡化了你的工作流程。不僅可以方便地安裝、更新、卸載工具包,而且安裝時能自動安裝相應的依賴包,同時還能使用不同的虛擬環境隔離不同要求的項目。安裝Acaconda默認的Python是2.7;安裝Acaconda3默認的Python是3.6
什么是Conda
Conda是一個開源的包、虛擬環境管理器,可以用於在同一個機器上安裝不同版本的軟件包及其依賴,並能夠在不同的環境之間切換,它的包管理類似PIP。
packages 管理: 可以使用 conda 來安裝、更新 、卸載工具包 ,並且它更關注於數據科學相關的工具包。在安裝 anaconda 時就預先集成了像 Numpy、Scipy、 pandas、Scikit-learn 這些在數據分析中常用的包。另外值得一提的是,conda 並不僅僅管理Python的工具包,它也能安裝非python的包。比如在新版的 Anaconda 中就可以安裝R語言的集成開發環境 Rstudio。
虛擬環境管理: 在conda中可以建立多個虛擬環境,用於隔離不同項目所需的不同版本的工具包,以防止版本上的沖突。對糾結於 Python 版本的同學們,我們也可以建立 Python2 和 Python3 兩個環境,來分別運行不同版本的 Python 代碼。
安裝和使用
安裝過程略,非常簡單,安裝完之后運行下面的命令添加源,這樣以后通過conda安裝包就走國內鏡像。鏡像大全不只是Anaconda
# 添加Anaconda的TUNA鏡像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 設置搜索時顯示通道地址,這個可以不加,只是為了看一下是否從鏡像站下載 conda config --set show_channel_urls yes
Anaconda安裝的框架在 用戶安裝的不同python環境都會被放在目錄~/anacondaX/envs下
環境變量會被自動添加到 ~/.bash_profile/Users/steven/Anaconda
可以在命令中運行conda info -e查看已安裝的環境,如下圖,我這里有多個環境。

常用命令
Conda管理
# 更新anaconda conda update conda # 更新anaconda元數據包 conda update anaconda # 卸載Anaconda # 編輯 ~/.bash_profile 這個文件刪除環境變量 # 刪除 .condarc 文件這個文件默認沒有,只有你執行過 conda config 命令以后才會自動建立。該文件是conda的配置文件 # 是YAML格式。比如你可以設置安裝包的渠道,是否自動更新conda,是否允許其他渠道等設置。
Python管理
# 建立一個環境並安裝其他版本的Python,安裝其他版本為啥還要建立環境呢?因為多版本支持就是靠不同環境實現的,所以你安裝其他版本 # 一定要和某個環境關聯才可以。 # python27 是環境名稱 # python=2.7 是要安裝的包和版本
# anaconda 是創建環境時同時要安裝的包,這個可以不寫 conda create -n python27 python=2.7 anaconda conda create -n python36 python=3.6 conda create -n python37 python=3.7 # 更新Python,進入某個環境運行下面的命令,將更新當前環境的Python到最新分支版本。比如當前是3.5,更新后將會到最新的3.X conda update python
環境管理
# 列出當前環境,環境名稱前有 * 號的表示當前環境 conda list --evns conda env list # 創建一個名為python34的環境,指定Python版本是3.4(不用管是3.4.x,conda會為我們自動尋找3.4.x中的最新版本) conda create --name python34 python=3.4 # 安裝好后,使用activate激活某個環境 activate python34 # for Windows source activate python34 # for Linux & Mac # 如果想返回默認的python 2.7環境,運行 deactivate python34 # for Windows source deactivate python34 # for Linux & Mac # 不加環境則返回默認環境 source deactivate # for Linux & Mac deactivate # for Windows # 導出環境,它會把當前環境中安裝的包以及版本號都導出去,這樣你就可以拿到另外的機器上來重新構建一個相同的環境 # 導出的內容包括環境名稱,安裝渠道,該環境安裝的包以及版本號。 source activate python36 # 首先進入名稱叫做python36環境 conda env export > environment.yml # 導出當前環境到指定文件 conda env create -f environment.yml # 通過環境文件建立環境,不需要指定環境名稱,因為文件中包含名稱字段 # 移除一個名稱python36叫做環境 conda env remove --name python36
包管理
# 查找包 conda search 包名 # 安裝包 conda install --name myenv scipy # 安裝包到指定環境中 conda install scipy # 安裝包到當前環境中 conda install scipy=0.15.0 # 安裝指定版本的包,到當前環境 conda install scipy curl # 安裝多個包
conda install -c anaconda django # -c是指定渠道名稱,也就是用哪個渠道安裝django。 # 卸載包 conda remove 包名 # 刪除當前環境中的指定包 conda remove -n python34 numpy # 刪除指定環境中的指定包 # 安裝不在conda或者acaconda的包,當你安裝的包不在conda管理范圍的時候可以使用pip來安裝 conda install pip # 首先在當前環境中安裝pip pip install 包名 # 其次在通過PIP命令在當前環境中安裝包 # 更新包 conda update 包名 # 更新當前環境指定的包 conda update -n python36 numpy # 更新指定環境中的指定包 # 查看當前已經安裝的packages conda list conda list -n python36 # 查看指定環境中安裝的所有包
說明:對於那些無法通過conda安裝或者從Anaconda.org獲得的包,我們通常可以用pip來安裝包。
pip只是一個包管理器,所以它不能為你管理環境。pip甚至不能升級python,因為它不像conda一樣把python當做包來處理。但是它可以安裝一些conda安裝不了的包,pip和conda都集成在Anaconda或miniconda里邊。
另外你還可以去 官網 搜索



按照命令去安裝
.condarc文件說明
文件這個文件默認沒有,只有你執行過 conda config 命令以后才會自動建立。該文件是conda的配置文件,是YAML格式。比如你可以設置安裝包的渠道,是否自動更新conda,是否允許其他渠道等設置。下面是我的配置文件說明。這些不是必須的。但是在國內建議設置channels,這個在上面已經說過。所以通常你不需要關注這個文件。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
在channels里面加入國內的渠道,另外配置一個 - defaults,含義是在國內渠道找不到時會去默認渠道去找。
