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.(不用管是3..x,conda会为我们自动寻找3..x中的最新版本)
conda create --name python34 python=3.4 # 安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac # 如果想返回默认的python .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. # 安装指定版本的包,到当前环境
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,含义是在国内渠道找不到时会去默认渠道去找。

Python多环境管理的更多相关文章

  1. 优雅的使用python之环境管理

    优雅的使用python之环境管理 缘起 情景1:不同python版本的管理 同一电脑上的多个python版本之前的管理,为了突出问题的普遍存在,下面是有人在segmentfault上提的问题. 摘自: ...

  2. Python多环境管理神器(pyenv)

    前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://w ...

  3. python虚拟环境管理之virtualenv,virtualenvwrapper,pipenv,conda

    虚拟环境的作用 使python环境拥有独立的包,避免污染原本的python环境.为不同的项目创建不同的环境可以避免安装的库过于庞大和相互干扰. 例如你想在同一台机器上开发用python2和python ...

  4. python多环境管理一(venv与virtualenv)

    一.背景 我们经常会遇见这样的场景: 1.各个项目使用的python版本不相同 由于Python的解释器版本众多,各版本之间差异非常大.特别是python2和python3,互不兼容. 有些项目可能用 ...

  5. Python多环境管理神器(pipenv)

    pipenv 参考官网:https://pipenv.pypa.io/ pipenv 是一款比较新的包管理工具,其借鉴了 javascript 的 npm 和 PHP 的 composer 等理念,通 ...

  6. Python多环境管理神器(Anaconda)

    为了解决python多版本共存,解决不同版本之间的依赖冲突,虚拟环境隔离等问题,我们前面介绍了venv.virtualenv.virtualenvwrapper.pyenv.pipenv等众多工具.下 ...

  7. 使用python之环境管理

      情景1:不同python版本的管理 同一电脑上的多个python版本之前的管理,为了突出问题的普遍存在,下面是有人在segmentfault上提的问题. 摘自:http://segmentfaul ...

  8. CentOS7下python工作环境管理

    一.pyenv管理不同的python版本1.下载安装git clone git://github.com/yyuu/pyenv.git ~/.pyenv  echo 'export PYENV_ROO ...

  9. python虚拟环境管理包virtualenvwrapper

    1.打开cmd 2.安装virtualenvwrapper pip install virtualenvwrapper-win 3.配置虚拟环境的位置 新建系统变量默认在c盘 4.新建虚拟环境 mkv ...

随机推荐

  1. django自制后台左侧导航代码

    自定义一个sort.py页面: 写入一下代码: class lanmusort(object): def __init__(self): self.arr=[] def lanmuget(self,o ...

  2. Unity Rain Ai 插件基本使用(二)

    前言 在前面的教程中我们已经基本实现了路径导航和障碍物规避. 但是这样我们并没有让我们的角色学会思考,他只是机械的去完成一些步骤,这并不能体现Rain插件的智能. 一个角色他应该有多个不同的状态,待机 ...

  3. 背包问题——dfs

    背包问题——dfs 问题描述   解决思路 采用DFS搜索 其实也是回溯法 代码实现 #include<iostream> #include<vector> using nam ...

  4. html2canvas在Vue项目踩坑-生成图片偏移不完整

    背景 最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来. 在项目遇到的坑是图片能生成,可是生成的图片总是 ...

  5. Java 什么是线程安全

    当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的.其中,正确性指某个类的行 ...

  6. Egret的容器--删除对象,遮罩

    class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event. ...

  7. H5_ 多媒体video,autio使用示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. zipkin

    转:https://blog.csdn.net/liaokailin/article/details/52077620 zipkin为分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监 ...

  9. 常见的UI框架

    移动端框架 1.Admui 管理系统快速开发框架--http://docs.admui.com/ 为什么选择Admui?代码开源--开放所有源码,不存在任何加密混淆代码,安全全程可控,开箱即用--包含 ...

  10. Java_Math/Date

    这篇文章我们来研究下java中两个常用的工具类,Math和Date Math: Math是java中各种函数计算集合类,进入到Math类中,可以看到Math是java.lang包下的,被final修饰 ...