Anaconda 不完全指南

作者: 猪兔同龙 | 来源:发表于2019-02-24 23:30 被阅读0次

    Anaconda Q&A

    Anaconda 是什么?

    • Anaconda官方网站) 是一种 Python 语言的开源发行版,等于 Python + 第三方软件包 + 包管理。
    • Anaconda 用于进行大规模数据处理、预测分析和科学计算,致力于简化包的管理和部署。
    • Anaconda 使用软件包管理系统 Conda官方网站) 进行包管理。

    Anaconda 可以做什么?

    Anaconda 是用于部署机器学习和数据科学开发环境的最佳工具

    • Anaconda 可以为每一个 Python 应用创建一个独立的运行环境,包括:指定版本的 Python、依赖包、环境变量等。例如:Tensorflow 可以运行在 Python 2.7 和 Python 3.6 下,通过 Anaconda 可以创建两个 Tensorflow 的运行环境,分别对应 Python 2.7 和 Python 3.6 版本。
    • Anaconda 包含了 1,500+ 个用于数据科学的最流行的 Python,R 和 Scala 软件包,避免了安装、更新、维护数据科学软件包的麻烦。
    • Anaconda 具有跨平台的特性,可以在 Windows、Linux 和 Mac OS 上运行。

    如何获得 Anaconda ?

    Anaconda 是开源软件,可以通过官方、第三方镜像、第三方发行来获得。

    1. Anaconda 的官方下载
    2. Anaconda 的中国镜像可以在网络条件不好的情况下,提高下载速度。目前,中国的主力镜像是 清华开源软件镜像中科大开源软件镜像
    3. Microsoft 已经将 Anaconda 集成到 Visual Studio 中(Visual Studio 官方网站)- vs 已经逐渐演变成了 代码编辑器 + 开发工具集 + 包管理的集成工具,通过安装 vs 2017 中的 Python 开发环境,就可以自动安装 Anaconda。

    Anaconda 中包含了什么?

    • Anaconda 已经包含了 Python 的最新版本,因此无须单独安装 Python。
    • Anaconda 包含了 Conda 包管理软件。
    Anaconda 包含了以下软件
    1. Numpy
        http://www.numpy.org/
        N 维数组的数值计算。

    2. Scipy
        https://scipy.org/
        Python 的科学计算库。

    3. Matplotlib
        https://matplotlib.org/
        Python 的 2D 绘图库。

    4. Pandas
        http://pandas.pydata.org/
        强大的 Python 数据结构、数据分析工具箱。

    5. Seaborn
        http://seaborn.pydata.org/
        Python 的统计学绘图库。
    6. Bokeh
        http://bokey.pydata.org/
        可视化、交互式 Web 库。

    7. Scikit-Learn
        https://scikit-learn.org/stable/
        用于机器学习和数据挖掘的 Python 模块。

    8. NLTK
        http://www.nltk.org/
        自然语言处理工具箱。

    9. Jupyter Notebook
        https://jupyter.org/
        允许您创建和共享包含实时代码,方程式,可视化和说明文本的文档的Web应用程序。

    10. R essentials
          可以使用 “conda install r-essentials” 安装 80 个最常用的数据科学 R 软件包。

    Miniconda 是什么?

    Miniconda 是 Anaconda 的精简安装包,它基本上只包括:Python、Conda、及其依赖包。它比 Anaconda 安装包小得多。用户可以通过 “conda install PACKAGENAME” 命令,来从头构建自己的环境。

    Anaconda 官方用户指南


    安装 Anaconda

    下载 Windows 版本,一路 next 搞定。有疑问,可以参考官方安装指南

    注意!
    Anaconda 对安装目录有以下要求:

    • 目录名不能包含空格,例如:不能使用 “C:\Program Files\” 目录。
    • 目录名不能包含 Unicode 字符,例如:不能使用 “C:\中文路径” 之类的目录。

    校验是否正确安装 Anaconda

    Anaconda Navigator

    通过运行 “Anaconda Navigator” 程序,来检验 Anaconda 是否被正确安装。只要 Navigator 能正确开启,则说明正确安装了 Anaconda。

    Conda

    通过在 “Anaconda Prompt” 中执行 “conda” 命令,来检验 Anaconda 是否被正确安装。

    • 执行 conda list 命令,将显示已安装的 package name 和 version。
    • 执行 python 命令,开启 Python shell;执行 quit() 命令,退出 Python shell。
    • 执行 anaconda-navigator 命令,将开启 Anaconda Navigator。

    卸载 Anaconda

    在 Windows “应用和功能” 中,Anaconda 3 很奇怪的没有显示为 “Anaconda 3”,而被显示为 “Python 3.x.x (Anaconda3 xxxx.xx 64bit)”。

    Anaconda Uninstall

    更新 Anaconda

    打开 “Anaconda Prompt”,使用以下指令,可以更新 Anaconda 到最新版本。
    conda update conda
    conda update anaconda


    开始使用 Anaconda

    Anaconda Navigator 和 Anaconda Prompt

    Anaconda 提供了两种管理方式,它们都可以完成软件包和工作环境管理的任务:

    • 图形化管理:Anaconda Navigator
    • 命令行管理:Anaconda Prompt

    作为一个程序员,使用 “Anaconda Prompt” 是最自(装)然(B)的选择。

    第一个 Python 程序:Hello Anaconda!

    1. 打开 “Anaconda Prompt
    2. 运行 python
    3. 键入 print("Hello Anaconda!")
    4. 键入 exit()
    (base) C:\Users\administrator>python
    Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print("Hello Anaconda!")
    Hello Anaconda!
    >>> exit()
    
    (base) C:\Users\administrator>
    

    开始使用 Conda

    Conda 是 Anaconda 的包管理和环境管理系统。

    • 包管理:对第三方软件包的搜索、安装、更新、卸载。
    • 环境管理:为 Python 应用创建、更改、删除独立的运行环境。

    Conda 自学终极大法

    Conda Help
    显示帮助 *conda --help*
    显示某条命令(COMMAND)的帮助 conda COMMAND --help

    Conda 的自我管理

    Managing Conda
    显示当前 Conda 版本 conda --version
    显示当前 Conda 的详细信息 conda info
    更新 Conda 到最新版本 conda update conda
    更新 Anaconda 到最新版本 conda update anaconda

    环境管理

    Work with Environments
    列出所有可用的工作环境 conda info --envs
    创建一个新的工作环境。环境名:ENVNAME,并安装 Python 3.6,PKG1 7.6 版以上,及 PKG2 conda create --name ENVNAME python=3.6 "PKG1>=7.6" PKG2
    按命名激活工作环境 conda activate ENVNAME
    按目录激活工作环境 conda activate /path/project-dir
    停用当前工作环境 conda deactivate
    列出激活环境中,安装的所有软件包及其版本 conda list
    列出命名环境中,安装的所有软件包及其版本 conda list --name ENVNAME
    列出激活环境中,所有的修订 conda list --revisions
    列出命名环境中,所有的修订 conda list --name ENVNAME --revisions
    将环境回滚到指定的修订版本 conda install --name ENVNAME --revision REV_NUMBER
    删除一个工作环境 conda remove --name ENVNAME --all

    环境共享

    环境共享主要用于备份、迁移工作环境。

    Sharing Environments
    克隆一个工作环境 conda create --clone ENVNAME --name NEWENV
    将一个工作环境导出为 YAML 文件,该文件可以在 Windows、Mac OS、和 Linux 上读取 conda env export --name ENVNAME > envname.yml
    从一个 YAML 文件创建一个工作环境 conda env create --file envname.yml
    从当前目录的 environment.yml 文件创建一个工作环境 conda env create
    导出某个 OS 下,各软件包精确版本的工作环境 conda list --explicit > pkgs.txt
    创建一个各软件包精确版本的工作环境 conda create --name NEWENV --file pkgs.txt

    管理 Channels

    Channels 是什么?

    Channel 在 Conda 中,类似与其它包管理软件的 “源”(Source)“仓库”(Repo)的概念。它是由 Anaconda 官方或第三方维护的软件存储库,用户可以检索、下载、安装软件存储库中的软件包。

    • Anaconda 官方提供了 Defaults Channel,安装 Anaconda 时已经设置好了。
    • 为了提高下载速度,很多第三方镜像了 Anaconda Distribution。
    • Anaconda 国内的镜像:清华大学开源软件镜像中科大开源软件镜像
    • 可以通过搭建私有 Channel 的方式,发布自己的软件包。

    添加、删除 Mirrors Channel

    • 添加清华源
      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

    • 添加中科大源
      conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
      conda config --set show_channel_urls yes

    • 删除镜像源
      conda config --remove-key channels

    2019/02/27 实测:

    • 清华大学源速度并不比官方源速度快。
    • 中科大源则安装 vs2015_runtime 时报错。

    Channels 的选择逻辑

    不同的 Channels 可能包含相同的软件包(例如:Mirrors Channel 与 Defaults Channel 就包含了完全相同的软件包),因此 Conda 需要决定从哪个 Channel 中下载、安装软件包。

    最新版 Conda( 4.1 版之后),引入了优先级(channel priority)的概念,添加源的命令也同步修订为了两条:

    • 在 Channel list 的顶部添加源(添加最高优先级的源):
      conda config --prepend channels new_channel
    • --prepend channels 命令等同于 --add channels 命令:
      conda config --add channels new_channel
    • 在 Channel list 的底部添加源(添加最低优先级的源):
      conda config --append channels new_channel

    对于同名软件包,Conda 按照以下的逻辑来选择安装次序:

    1. 对软件包,按照源的优先级从高到低排序;
    2. 同一个源内,软件包按照版本号从高到低排序;
    3. 同一个源内,相同版本号的软件包,按照 build number 从高到低排序;
    4. 经过以上排序后,安装排序表中第一个符合安装选项的软件包。

    Tips:

    • 用于加速的镜像源,应该放在 Channel list 的顶部(最高优先级),以覆盖 Defaults Channel,才能起到加速的作用。
    • 发布第三方或自有的软件包,应该将源添加到 Channel list 的底部(最低优先级),保证不会覆盖 Defaults Channel。

    安装、卸载、更新软件包

    Using Packages and Channels
    从当前配置的所有源(可以通过 conda info 命令查看)中搜索 Package。 conda search PKGNAME
    在当前工作环境中,安装 Package conda install PKGNAME
    在指定工作环境中,安装 Package conda install --name ENVNAME PKGNAME
    安装确切版本的 Package(例如:3.1.4) conda install PKGNAME=3.1.4
    安装不低于指定版本的 Package(例如:3.1+) conda install "PKGNAME>=3.1"
    安装子版本最新的 Package (例如:3.1.x) conda install PKGNAME=3.1"
    删除指定工作环境中的 Package conda uninstall --name ENVNAME PKGNAME
    更新指定工作环境中的所有 Package conda update --name ENVNAME --all

    相关文章

      网友评论

        本文标题:Anaconda 不完全指南

        本文链接:https://www.haomeiwen.com/subject/fbpiyqtx.html