zoukankan      html  css  js  c++  java
  • 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,含义是在国内渠道找不到时会去默认渠道去找。

  • 相关阅读:
    洛谷 P1939 矩阵加速(数列)
    【模板】矩阵快速幂
    洛谷 P3128 [USACO15DEC]最大流Max Flow
    洛谷 P1967 货车运输
    【模板】最近公共祖先(LCA)
    【模板】高斯消元法
    java从基础知识(七)java集合
    java基础知识(六)日期处理
    java基础知识(五)java类
    会员体系-系统豆的获取与消费
  • 原文地址:https://www.cnblogs.com/rexcheny/p/9484309.html
Copyright © 2011-2022 走看看