Python多環境管理


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,含義是在國內渠道找不到時會去默認渠道去找。


免責聲明!

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



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