Python - 安装并配置Anaconda环境

时间:2022-04-10 09:12:01

1- 简介

Anaconda是一个用于科学计算的Python发行版,适用于数据分析的Python工具,也可以用在大数据和人工智能领域。
  • 支持 Linux, Mac, Windows系统;
  • 包含了Python和相关的配套工具,包括许多非常有用的第三方库;
  • 利用Conda来管理包和运行环境,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题;

Conda

用来管理包(packages)、依赖与环境(environment)的工具(可执行命令);

Anaconda

Python的一种发行版,是一个打包的集合(预装好了conda、某个版本的python、众多packages、科学计算工具等),占用空间较大;

Miniconda

  • 只包含最基本的内容(python与conda,以及相关的必须依赖项)的命令行工具,适合对于空间要求严格的用户;

Conda与Anaconda的联系与区别

Conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。

2- 安装

注意:如无特别说明,本文内容仅适用于windows系统;
 
官方下载:  

 

清华大学anaconda镜像: https://mirrors.tuna.tsinghua.edu.cn/anaconda/
下载后根据提示进行安装,建议安装在指定目录,不要选择默认安装路径,以便节约系统盘空间和明确相关路径(例如,虚拟环境的默认路径等)。
将安装如下应用:
Python - 安装并配置Anaconda环境
  • Anaconda Navigtor :用于管理工具包和环境的图形用户界面,管理命令也可以在 Navigator 中手工实现。
  • Anaconda Prompt :Anaconda的命令行,通过conda命令可以控制和配置Python运行环境。
  • Jupyter notebook :基于web的交互式计算环境,可以编辑易于阅读的文档和展示数据分析的过程。
  • Spyder:使用Python语言、跨平台的、科学运算集成开发环境。
  • Reset Spyder Settings:恢复Spyder的默认设置。
安装Anaconda完成后,Path环境变量将指向Anaconda自带的Python,其内置的第三方模块安装在自己的路径下,不影响系统已安装的Python目录;

2.1 运行应用

Anaconda Navigtor:可能启动较慢
Python - 安装并配置Anaconda环境
 
Anaconda Prompt
  Python - 安装并配置Anaconda环境

Jupyter notebook

Python - 安装并配置Anaconda环境

Spyder

Python - 安装并配置Anaconda环境

JupyterLab
将在默认浏览器(建议将默认浏览器设置为Chrome)打开一个默认页面“http://localhost:8888/lab”,可以在此页面输入并执行Python代码。

  • JupyterLab is the next-generation web-based user interface for Project Jupyter.
  • 文档:https://jupyterlab.readthedocs.io/
  • JupyterLab被认为是 Jupyter Notebooks 的进一步发展,JupyterLab 的开发者的长期目标是最终替代 Jupyter Notebooks。
  • 支持更加灵活和更加强大的项目操作方式,和Jupyter Notebooks一致的组件和环境,但具有生产力更高的体验。
  • 可以在一个窗口中放置笔记本、终端、文本文件和输出结果工作区,只需拖放你需要的单元即可。
  • 可以编辑 Markdown、CSV 和 JSON 等常用文件格式,并实时预览修改所造成的影响。
  • 可以使用相关的扩展来添加新功能,或者完全改变界面的运行方式。

Qt Console
一个可执行IPython的仿终端图形界面程序,可直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
Glueviz
Python库,用于探索相关数据集内部和之间的关系,创建统计图形等。
Orange3
交互式数据可视化的工具,通过巧妙的数据可视化执行简单的数据分析。
VS Code
Visual Studio Code是一个轻量级但功能强大的源代码编辑器,内置了对JavaScript,TypeScript和Node.js的支持,并为其他语言和运行时提供了丰富的扩展生态系统。

2.2 添加conda环境变量

避免找不到conda 命令的错误提示,需要添加conda环境变量;
例如:“D:\DownLoadFiles\anaconda3\Scripts\”
Python - 安装并配置Anaconda环境

2.3 帮助信息

  • 命令行下执行"conda -h"或“conda --help”可以获得帮助信息;
  • 命令行下执行"conda <argument> -h"或“conda <argument> --help”可以获得具体参数的帮助信息;

2.4 添加Conda代理和国内镜像

$ conda -h
usage: conda [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean        Remove unused packages and caches.
    config       Modify configuration values in .condarc. This is modeled
                 after the git config command. Writes to the user .condarc
                 file (C:\Users\guowli\.condarc) by default.

 

根据“conda -h”的提示信息,修改配置文件(如果没有,可以创建)
这里为“C:\Users\guowli\.condarc”
 
设置代理
$ cat /C/Users/guowli/.condarc
proxy_servers:
    http: http://10.144.1.10:8080
    https: http://10.144.1.10:8080

 

添加国内镜像源(国内清华大学镜像)
可以在命令行下执行如下命令(配置改动将更新到配置文件)
conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/'
conda config --set show_channel_urls yes

conda源操作的基本命令

conda config --show                查看当前所有配置
conda config --show-sources        查看当前使用源
conda config --remove channels     删除指定源
conda config --add channels        加指定源

或者直接修改修改配置文件

$ cat /C/Users/guowli/.condarc
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - defaults
show_channel_urls: True
allow_other_channels: True

 

2.5 设置Conda环境和缓存的路径

默认情况下,Conda创建的新环境以及过往安装的模块缓存都存储在用户目录。
默认信息不会在Conda(user-specific)配置文件“$HOME/.condarc”中体现,但可通过"conda info"查看,包括默认环境路径、默认缓存路径、Conda源设置等。
添加或修改“$HOME/.condarc”中的“env_dirs”和“pkgs_dirs”配置项,可以设置conda环境和缓存(envs directories 和 package cache)的默认路径。
按顺序第一个路径作为默认存储路径,搜索环境和缓存时按先后顺序在各目录中查找。

例如:在“$HOME/.condarc”中添加如下路径

envs_dirs:
  - D:\DownLoadFiles\anaconda3\envs  # 按顺序第一个路径作为默认存储路径,搜索环境和缓存时按先后顺序在各目录中查找
  - C:\Users\guowli\AppData\Local\conda\conda\envs
  - C:\Users\guowli\.conda\envs                         
pkgs_dirs:
  - D:\DownLoadFiles\anaconda3\pkgs
  - C:\Users\guowli\AppData\Local\conda\conda\pkgs

也可以使用conda命令指定存放路径:

conda config --add envs_dirs <环境位置绝对路径>  # 添加环境位置
conda config --add pkgs_dirs <包位置绝对路径>  # 添加包位置

 

3- 管理Python包

3.1 升级所有工具包

安装完成后,可以对所有工具包进行升级,在命令行执行“conda upgrade --all”,询问是否安装升级版本时,输入y。

3.2 常用命令

conda install <package_name>         安装包
conda install numpy scipy pandas     同时安装多个包
conda install numpy=1.10             安装包的指定版本
conda install anaconda               在当前环境安装anaconda集合包
 
conda remove <package_name>   移除包
conda update <package_name>   升级包
 
conda list                    查看当前环境已安装的包信息
conda search <package_name>   查询包信息
conda search <search_term>    模糊查询包信息
 
conda install --name <env_name> <package_name>   在指定环境安装的包信息
conda remove  --name <env_name> <package_name>   移除指定环境的包
conda update  --name <env_name> <package_name>   升级指定环境的包
conda list --name <env_name>                     查看指定环境的已安装的包信息
 
conda update conda      更新conda
conda update anaconda   更新anaconda
conda update python     更新Python

 

3.3 通过pip来管理包

注意:conda和pip都是对当前环境进行安装、升级和卸载包的操作。

1. 设置允许pip访问conda包管理,执行命令“conda config --set use_pip True”;
$ conda config --set use_pip True

$ cat /c/Users/guowli/.condarc
use_pip: true
2. 激活其中的一个运行环境
3. 在激活的运行环境中,执行pip命令来管理包,可以通过“--proxy”参数设置代理地址;
 

4- 管理Python环境

如果安装了 Python3 版本的 Anaconda 后,默认的 root 环境是 Python3;

4.1 常用命令

conda create --name <env_name>  <list of packages>    创建新环境 
conda create --name testpy2 python=2.7 pandas         创建名为testpy2的运行环境,并安装pandas包及其依赖包
conda create --name testpy36 python=3.6 anaconda      创建名为testpy36的运行环境,并安装anaconda集合包(conda默认环境)

conda env remove --name <env_name>    删除环境
conda env list                    显示所有的环境

conda info                        显示当前安装的conda信息
conda info --envs                 显示所有运行环境

source activate <env_name>    激活(进入)环境
source deactivate             去激活(退出)当前环境

 

4.2 分享运行环境

为了保证代码可以正确运行,分享代码的同时,也需要将运行环境分享;
通过conda可将当前环境下的 package 信息存入YAML 文件, 当执行他人的代码时,可使用此YAML文件创建同样的运行环境;
conda env export > BackupEnv.yaml    将当前运行环境的package信息导出到名为BackupEnv的YAML文件
conda env create --force BackupEnv.yaml   使用YAML文件创建运行环境

 

4.3 完整示例

创建运行环境---》查看运行环境---》进入运行环境---》退出运行环境---》删除运行环境
$ py --version   # 当前默认python版本
Python 3.7.1


$ conda create --name testpy2 python=2.7 pandas  # 创建名为testpy2的运行环境,并安装pandas包及其依赖包
Solving environment: done

## Package Plan ##

  environment location: D:\DownLoadFiles\anaconda3\envs\testpy2    # 创建的运行环境的所在目录

  added / updated specs:  # conda仅安装pandas和python2.7相关的必须项(pandas的依赖项,python2.7, pip等)
    - pandas
    - python=2.7


The following packages will be downloaded:    # 将要下载当前没有的安装包

    package                    |            build
    ---------------------------|-----------------
    vc-9                       |       h7299396_1           3 KB
    python-dateutil-2.7.5      |           py27_0         275 KB
    pandas-0.23.4              |   py27h39f3610_0         8.8 MB
    pytz-2018.7                |           py27_0         250 KB
    certifi-2018.10.15         |           py27_0         139 KB
    setuptools-40.5.0          |           py27_0         653 KB
    numpy-base-1.15.4          |   py27h2753ae9_0         3.8 MB
    pip-18.1                   |           py27_0         1.8 MB
    vs2008_runtime-9.00.30729.1|       hfaea7d5_1        1017 KB
    wincertstore-0.2           |   py27hf04cefb_0          13 KB
    python-2.7.15              |       h2880e7c_3        20.3 MB
    six-1.11.0                 |           py27_1          21 KB
    numpy-1.15.4               |   py27hbe4291b_0          36 KB
    mkl_fft-1.0.6              |   py27hac4a418_0         120 KB
    wheel-0.32.2               |           py27_0          52 KB
    ------------------------------------------------------------
                                           Total:        37.1 MB

The following NEW packages will be INSTALLED:    # 将要安装的包

    blas:            1.0-mkl
    certifi:         2018.10.15-py27_0
    icc_rt:          2017.0.4-h97af966_0
    intel-openmp:    2019.0-118
    mkl:             2019.0-118
    mkl_fft:         1.0.6-py27hac4a418_0
    numpy:           1.15.4-py27hbe4291b_0
    numpy-base:      1.15.4-py27h2753ae9_0
    pandas:          0.23.4-py27h39f3610_0
    pip:             18.1-py27_0
    python:          2.7.15-h2880e7c_3
    python-dateutil: 2.7.5-py27_0
    pytz:            2018.7-py27_0
    setuptools:      40.5.0-py27_0
    six:             1.11.0-py27_1
    vc:              9-h7299396_1
    vs2008_runtime:  9.00.30729.1-hfaea7d5_1
    wheel:           0.32.2-py27_0
    wincertstore:    0.2-py27hf04cefb_0

Proceed ([y]/n)? y


Downloading and Extracting Packages
vc-9                 | 3 KB      | ######################################################################## | 100%
python-dateutil-2.7. | 275 KB    | ######################################################################## | 100%
pandas-0.23.4        | 8.8 MB    | ######################################################################## | 100%
pytz-2018.7          | 250 KB    | ######################################################################## | 100%
certifi-2018.10.15   | 139 KB    | ######################################################################## | 100%
setuptools-40.5.0    | 653 KB    | ######################################################################## | 100%
numpy-base-1.15.4    | 3.8 MB    | ######################################################################## | 100%
pip-18.1             | 1.8 MB    | ######################################################################## | 100%
vs2008_runtime-9.00. | 1017 KB   | ######################################################################## | 100%
wincertstore-0.2     | 13 KB     | ######################################################################## | 100%
python-2.7.15        | 20.3 MB   | ######################################################################## | 100%
six-1.11.0           | 21 KB     | ######################################################################## | 100%
numpy-1.15.4         | 36 KB     | ######################################################################## | 100%
mkl_fft-1.0.6        | 120 KB    | ######################################################################## | 100%
wheel-0.32.2         | 52 KB     | ######################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > activate testpy2
#
# To deactivate an active environment, use:
# > deactivate
#
# * for power-users using bash, you must source
#


$ conda env list    # 显示所有运行环境
# conda environments:
#
base                  *  D:\DownLoadFiles\anaconda3    # 星号表示是当前运行环境
testpy2                  D:\DownLoadFiles\anaconda3\envs\testpy2


$ source activate testpy2    # 进入testpy2运行环境
(testpy2)


$ conda env list
# conda environments:
#
base                     D:\DownLoadFiles\anaconda3
testpy2               *  D:\DownLoadFiles\anaconda3\envs\testpy2    # 星号表示是当前运行环境

(testpy2)


$ py --version
Python 3.7.1
(testpy2)    # 括号中显示当前的运行环境


$ conda info  # 显示conda信息

     active environment : testpy2
    active env location : D:\DownLoadFiles\anaconda3\envs\testpy2
            shell level : 1
       user config file : C:\Users\guowli\.condarc
 populated config files : C:\Users\guowli\.condarc
          conda version : 4.5.11
    conda-build version : 3.16.2
         python version : 3.7.1.final.0
       base environment : D:\DownLoadFiles\anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/win-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/win-64
                          https://repo.anaconda.com/pkgs/pro/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : D:\DownLoadFiles\anaconda3\pkgs
                          C:\Users\guowli\AppData\Local\conda\conda\pkgs
       envs directories : D:\DownLoadFiles\anaconda3\envs
                          C:\Users\guowli\AppData\Local\conda\conda\envs
                          C:\Users\guowli\.conda\envs
               platform : win-64
             user-agent : conda/4.5.11 requests/2.20.0 CPython/3.7.1 Windows/7 Windows/6.1.7601
          administrator : False
             netrc file : None
           offline mode : False

(testpy2)


$ source deactivate    # 退出当前运行环境


$ conda env list
# conda environments:
#
base                  *  D:\DownLoadFiles\anaconda3    # 星号表示是当前运行环境
testpy2                  D:\DownLoadFiles\anaconda3\envs\testpy2


$ conda env remove --name testpy2    # 删除运行环境

Remove all packages in environment D:\DownLoadFiles\anaconda3\envs\testpy2:


## Package Plan ##

  environment location: D:\DownLoadFiles\anaconda3\envs\testpy2


The following packages will be REMOVED:

    blas:            1.0-mkl
    certifi:         2018.10.15-py27_0
    icc_rt:          2017.0.4-h97af966_0
    intel-openmp:    2019.0-118
    mkl:             2019.0-118
    mkl_fft:         1.0.6-py27hac4a418_0
    numpy:           1.15.4-py27hbe4291b_0
    numpy-base:      1.15.4-py27h2753ae9_0
    pandas:          0.23.4-py27h39f3610_0
    pip:             18.1-py27_0
    python:          2.7.15-h2880e7c_3
    python-dateutil: 2.7.5-py27_0
    pytz:            2018.7-py27_0
    setuptools:      40.5.0-py27_0
    six:             1.11.0-py27_1
    vc:              9-h7299396_1
    vs2008_runtime:  9.00.30729.1-hfaea7d5_1
    wheel:           0.32.2-py27_0
    wincertstore:    0.2-py27hf04cefb_0

Proceed ([y]/n)? y


$ conda env list
# conda environments:
#
base                  *  D:\DownLoadFiles\anaconda3


$

 

5- 在PyCharm中使用Anaconda创建的环境

5.1 查看Conda环境信息

在Anaconda Prompt中通过“  conda env list”查看所有环境信息,确认环境所在目录;
Python - 安装并配置Anaconda环境
注意:通过Conda创建的虚拟环境默认放置envs目录中,例如:“D:\DownLoadFiles\anaconda3\envs\mlcc”
 

5.2 更改PyCharm的编译器选项 

打开Pycharm,然后依次点击File---》Settings---》Project:xxxxx---》Project Interperter---》“齿轮”按钮---》“Add Local...”

Python - 安装并配置Anaconda环境

在出现页面中,添加Conda环境信息并保存

Python - 安装并配置Anaconda环境

此时,依次点击File---》Settings---》Project:xxxxx---》Project Interperter---》“齿轮”按钮---》“Show All...”

Python - 安装并配置Anaconda环境

依次点击File---》Settings---》Project:xxxxx---》Project Interperter,选择相应的环境。

Python - 安装并配置Anaconda环境

 

6- 参考信息

 

7- 问题处理

7.1 问题1:告警信息“WARNING: The conda.compat module is deprecated and will be removed in a future release.”

问题现象:
安装Anaconda3后,在Anaconda Prompt执行conda命令, 例如“conda env list”,提示告警信息“WARNING: The conda.compat module is deprecated and will be removed in a future release.”

Python - 安装并配置Anaconda环境

问题原因:
问题处理方法:
升级conda版本。
(base) C:\Users\guowli>conda update conda
WARNING: The conda.compat module is deprecated and will be removed in a future release.
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: C:\Office-Tools\Anaconda3

  added / updated specs:
    - conda


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-4.6.14               |           py37_0         2.1 MB  defaults
    ------------------------------------------------------------
                                           Total:         2.1 MB

The following packages will be UPDATED:

  conda                                       4.6.11-py37_0 --> 4.6.14-py37_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
conda-4.6.14         | 2.1 MB    | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(base) C:\Users\guowli>ET _sysp=%~dpA
'ET' is not recognized as an internal or external command,
operable program or batch file.

(base) C:\Users\guowli>IF NOT EXIST "!_sysp!\Scripts\conda.exe"
Collecting package metadata: done
Solving environment: done

# All requested packages already installed.


(base) C:\Users\guowli>conda --version
conda 4.6.14

(base) C:\Users\guowli>conda env list
# conda environments:
#
base                  *  C:\Office-Tools\Anaconda3


(base) C:\Users\guowli>