Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anaconda的安装及conda的使用 #119

Open
Qingquan-Li opened this issue Apr 19, 2019 · 0 comments
Open

Anaconda的安装及conda的使用 #119

Qingquan-Li opened this issue Apr 19, 2019 · 0 comments
Labels

Comments

@Qingquan-Li
Copy link
Owner

Qingquan-Li commented Apr 19, 2019

开发环境:

  • macOS Sierra 版本 10.12.6
  • Python

一、安装Anaconda

Anaconda 是一个包管理器,一个环境管理器,一个 Python/R 数据科学发行版(平台),以及超过 1500 多个开源软件包(anaconda-2019.03-py37_0)的集合。

Anaconda 包含 1500多个 Python/R 数据科学包(data science packages)。使用 Conda 管理库(libraries),依赖项(dependencies)和环境(environments)。

可以简单理解为:Anaconda 是自带很多软件包的 Python 发行版,Conda 是包管理器(类似 pip )。

Miniconda(Miniconda is a free minimal installer for conda.)官网下载:https://docs.conda.io/en/latest/miniconda.html

1. 安装Anaconda

安装 Anaconda ,使用图形化(非命令行)界面安装即可,也是官方推荐的安装方式。

2. 验证安装

  • 输入如下命令。如果Anaconda已安装并正常工作,则会显示已安装软件包及其版本的列表。conda list (新建或重启终端后, conda 才会生效。)
  • 输入命令python。此命令运行Python shell。如果安装并运行Anaconda,它启动时显示的版本信息将包括“Anaconda”。要退出Python shell,请输入命令quit()
  • 使用命令打开Anaconda Navigator anaconda-navigator。如果Anaconda安装正确,将打开图形程序Anaconda Navigator。

3. bash/zsh 切换

  • bash 切换到 zsh (一般要新建或重启终端后才生效):

    • (base) fatli@fatli:~$ chsh -s /bin/zsh
  • zsh 切换到 bash (前提是已经安装zsh,一般要新建或重启终端后才生效):

    • ➜ /Users/fatli > chsh -s /bin/bash
  • ~ 目录是你当前的用户目录( /Users/username ),这里是 /Users/fatli

  • / 目录是根目录。根目录是 Uers 目录的上一级目录。

bash

三项验证成功。

(base) fatli@fatli:~$ conda list
# packages in environment at /anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
alabaster                 0.7.12                   py37_0
# 省略……

(base) fatli@fatli:~$ python
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

(base) fatli@fatli:~$ anaconda-navigator
/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/conda_api.py:1364: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
# 省略……

zsh

三项验证都失败。

➜  /Users/fatli > conda list
zsh: command not found: conda
➜  /Users/fatli > python
Python 2.7.10 (default, Feb  7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
➜  /Users/fatli > anaconda-navigator
zsh: command not found: anaconda-navigator

➜  /Users/fatli > export PATH="/anaconda3/bin:$PATH"
# 导入Anaconda路径后,3项验证成功。然而每次新建终端(zsh模式下)都要导入一次。

原因:安装 Anaconda 时,默认将 Anaconda 的 bin 路径安装到 bash 模式下,可见 ~/.bash_profile 文件。

zsh模式下,不能验证 Anaconda 的解决方案:在 ~/.zshrc 文件下添加 Anaconda 路径:

export PATH="/anaconda3/bin:$PATH"

此时可能:conda will not modify your shell scripts at all. In order to initialize after the installation process is done, first run source<path to conda>/bin/activate and then run conda init.


附:(base)出现在Terminal提示符前

完成以上配置后,(base) 可能会默认出现在 Terminal 命令提示符前,如下:

(base) ➜  /Users/fatli >

这有可能是因为 auto_activate_base 被设置为 True 导致的,可以通过以下命令查看并进行修改:

(base) ➜  /Users/fatli > conda config --show | grep auto_activate_base
auto_activate_base: True
(base) ➜  /Users/fatli > conda config --set auto_activate_base False
(base) ➜  /Users/fatli > conda config --show | grep auto_activate_base
auto_activate_base: False

此时重新打开 Terminal ,命令提示符前的 (base) 便会消失。



二、conda管理环境

Conda 是一个开源包管理系统和环境管理系统,可在 Windows,macOS 和 Linux 上运行。Conda 可以快速安装,运行和更新软件包及其依赖项。Conda 可以轻松地在本地计算机上的环境之间创建,保存,加载和切换。它是为 Python 程序创建的,但它可以为任何语言打包和分发软件。

Anaconda 包含 1500+ 的 Python / R 数据科学包。这些包一部分已经内置安装,如 beautifulsoup4 ;一部分需要 $ conda install PACKAGENAME 手动安装,如 Scrapy 。

Tip: You can abbreviate many frequently used command options that are preceded by 2 dashes (--) to just 1 dash and the first letter of the option. So --name and -n are the same, and --envs and -e are the same.

参考:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

# 创建环境
# myenv为新环境的名称
conda create --name myenv
# 此操作新建一个干净的环境,不会安装任何包,环境中Python版本同系统Python版本(不推荐)
# 安装指定Python版本的环境(推荐):
conda create --name py36_env python=3.6
# 激活环境
conda activate myenv
# 停用环境(Conda从系统命令中删除当前活动环境的路径名)
conda deactivate

# "conda activate" and "conda deactivate" only work on conda 4.6 and later versions.
# For conda versions prior to 4.6, run: "source activate" or "source deactivate"
# 查看环境信息
conda info --envs # 或者使用:conda env list
# conda environments:
#
base                  *  /anaconda3
myenv                    /anaconda3/envs/myenv
# 克隆环境
# myclone为新环境的名称,myenv为要复制的现有环境的名称
conda create --name myclone --clone myenv
# 删除环境(并删除所有包)
conda remove --name myenv --all # 或者使用:conda env remove --name myenv


三、conda管理Python

参考:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html

# 查看可用的Python版本 
conda search python
# 安装指定Python版本的环境(推荐,速度快)
conda create --name py36_env python=3.6
# 此操作会安装python3.6以外,还会安装以下包:
# ca-certificates、certifi、libcxx、libcxxabi、libedit、libffi、ncurses、openssl、pip、python、readline、setuptools、sqlite、tk、wheel、xz、zlib
# 安装指定Anaconda Python版本的环境(不推荐,速度慢)
conda create --name py37_env python=3.7 anaconda
# anaconda是包含Anaconda发行版在内的所有Python包的元数据包。
# 此操作会安装python3.7以外,还会安装anaconda附带安装的包(非常多):https://docs.anaconda.com/anaconda/packages/py3.7_osx-64/
# 更新python 
# 更新当前分支中的最新版本。例如python3.6.7升级到python3.6.8
conda update python
# 更新python到另一个分支。例如python3.6分支升级到python3.7分支
conda install python=3.7


四、conda管理包

参考:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html

# 搜索软件包,以确定安装渠道

# 查看指定包(scipy)能否直接使用conda安装。能查找到则可直接使用conda安装
conda search scipy

# 查看指定包(scipy)能否从Anaconda.org获取安装
conda search --override-channels --channel defaults scipy

# 查看指定包(iminuit)是否存在于指定渠道,以从指定渠道获取安装
conda search --override-channels --channel http://conda.anaconda.org/mutirri iminuit
# 查看指定包(scrapy)是否存在于指定渠道,以从指定渠道获取安装
conda search --override-channels --channel conda-forge scrapy

# 添加软件包安装渠道
# 以下命令将渠道“conda-forge”添加到渠道列表的顶部,使其成为最高优先级
# 执行此命名后,conda会默认从conda-forge中获取安装包
# 参考:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html
conda config --add channels conda-forge
# 应用场景:例如Ubuntu16.04 TLS中,通过安装Miniconda的形式安装conda,并没有conda-forge这个channel。
然而,原有的channels中可能没有提供某些第三方库(例如python-dotenv、uwsgi),此时则需要添加conda-forge这个channel。
否则,只能 指定channel进行第三方库的安装,例如 `$ conda install --channel conda-forge python-dotenv`# 删除channels:conda-forge
conda config --remove channels conda-forge

# 查看当前软件包的安装渠道
conda config --show-sources
# 使用conda安装软件包

# 查看指定包(scipy)能否直接使用conda安装。能查找到则可直接使用conda安装
conda search scipy

# 安装指定包(scipy)到指定环境(myenv)中
conda install --name myenv scipy

# 安装指定包到当前环境中
conda install scipy
# 安装指定版本的包
conda install scipy=0.15.0
# 一次安装多个包(最好一次安装所有软件包,以便同时安装所有依赖项)
conda install scipy curl
conda install scipy=0.15.0 curl=7.26.0

# 安装指定包版本和python版本的包(例如PhantomJS已经暂停开发,新版本的网络数据采集工具Selenium不再对其提供支持,所以需要安装旧版本的Selenium):
# 此处不指定软件包selenium=3.0.1的python版本,则会默认下载selenium=3.0.1=py27_0
conda install selenium=3.0.1=py35_0
# 从Anaconda.org安装软件包

# 使用conda无法安装的软件包,可以从Anaconda.org渠道获取安装
# 查看指定包(scipy)能否从Anaconda.org获取安装
conda search --override-channels --channel defaults scipy
# 或者,在https://anaconda.org中搜索需要的包,根据提示进行安装,例如:
conda install --channel pandas bottleneck

# 验证安装
conda list | grep bottleneck
bottleneck                1.2.1            py36h1d22016_1
# 安装非conda包(使用pip安装软件包)

# 如果无法从conda或Anaconda.org获得软件包,可以使用其它软件包管理器(如pip)查找并安装软件包
# 以安装软件包see为实例:
conda install see
PackagesNotFoundError: The following packages are not available from current channels:

conda search see
PackagesNotFoundError: The following packages are not available from current channels

conda search --override-channels --channel defaults see
PackagesNotFoundError: The following packages are not available from current channels

# 使用pip查找并安装软件包
pip search see
pip install see
# 注意:使用conda create --name myenv创建的干净的环境(不安装任何软件包),没有安装pip,需要手动安装pip
# 否则将会使用系统默认的pip进行安装软件包
conda install pip # 安装最新版本的pip及其依赖,并安装最新的Python版本

# 验证安装
conda list | grep see
see                       1.4.1                    pypi_0    pypi
# 删除软件包

# 要在当前环境中删除SciPy软件包
conda remove scipy
# 要一次删除多个包,例如SciPy和cURL
conda remove scipy curl

# 如果使用pip安装的包,则要使用pip删除
pip uninstall see
# 更新软件包

# 更新指定的包
conda update biopython

# 更新Python
conda update python

# 更新conda本身(前提是已经在当前环境中安装conda,未安装执行conda install conda进行安装)
conda update conda

# 更新Anaconda元数据包
conda update conda
conda update anaconda
# 防止软件包更新

# 在当前环境的conda-meta目录下,添加一个名为pinned的文件,写入不想更新的软件包列表:
# 示例:强制NumPy保留1.7系列的版本,即以1.7开头的版本。强制SciPy保持在0.13.3版本
numpy 1.7.*
scipy ==0.13.3
# 此时,使用conda update numpy更新命令将使NumPy版本被限制在1.7.1(1.7系列的最高版本)
# 此时,使用conda install scipy=0.15.0安装另一个版本的Scipy将报错

# 使用--no-pin标志可以覆盖(override)包的更新限制,即忽略pinned文件规则强制更新
conda update numpy --no-pin
# 由于pinned的规则包含在每次的conda安装中,因此后续的conda update命令没有--no-pin,将使NumPy恢复至1.7系列的版本
@Qingquan-Li Qingquan-Li changed the title Anaconda安装及使用 Anaconda的安装及conda的使用 Nov 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant