1- 简介
- 支持 Linux, Mac, Windows系统;
- 包含了Python和相关的配套工具,包括许多非常有用的第三方库;
- 利用Conda来管理包和运行环境,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题;
Conda
用来管理包(packages)、依赖与环境(environment)的工具(可执行命令);
- 包管理:与pip类似,conda将所有工具、第三方包都当做package来管理(包括python和conda自身),而且能够安装非python的包;
- 环境管理:可以方便地安装各种版本python、各种package、创建虚拟环境并快速切换;
- 文档:https://conda.io/docs/index.html
- User guide:https://conda.io/docs/user-guide/index.html
- Getting started:https://conda.io/docs/user-guide/getting-started.html
- Conda cheat sheet:https://conda.io/docs/_downloads/conda-cheatsheet.pdf
Anaconda
Python的一种发行版,是一个打包的集合(预装好了conda、某个版本的python、众多packages、科学计算工具等),占用空间较大;
- 文档:http://docs.anaconda.com/anaconda/
- User guide:https://docs.anaconda.com/anaconda/user-guide/
- Getting started:http://docs.anaconda.com/anaconda/user-guide/getting-started/
- Anaconda cheat sheet:http://docs.anaconda.com/anaconda/user-guide/cheatsheet/
Miniconda
- 只包含最基本的内容(python与conda,以及相关的必须依赖项)的命令行工具,适合对于空间要求严格的用户;
Conda与Anaconda的联系与区别
Conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。
2- 安装
- Anaconda Navigtor :用于管理工具包和环境的图形用户界面,管理命令也可以在 Navigator 中手工实现。
- Anaconda Prompt :Anaconda的命令行,通过conda命令可以控制和配置Python运行环境。
- Jupyter notebook :基于web的交互式计算环境,可以编辑易于阅读的文档和展示数据分析的过程。
- Spyder:使用Python语言、跨平台的、科学运算集成开发环境。
- Reset Spyder Settings:恢复Spyder的默认设置。
2.1 运行应用
Jupyter notebook
Spyder
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环境变量
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.
$ 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 升级所有工具包
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都是对当前环境进行安装、升级和卸载包的操作。
$ conda config --set use_pip True $ cat /c/Users/guowli/.condarc
use_pip: true
4- 管理Python环境
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 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环境信息
5.2 更改PyCharm的编译器选项
在出现页面中,添加Conda环境信息并保存
此时,依次点击File---》Settings---》Project:xxxxx---》Project Interperter---》“齿轮”按钮---》“Show All...”
依次点击File---》Settings---》Project:xxxxx---》Project Interperter,选择相应的环境。
6- 参考信息
- Anaconda入门使用指南:https://www.jianshu.com/p/169403f7e40c
- Anaconda使用总结:https://www.jianshu.com/p/2f3be7781451
7- 问题处理
7.1 问题1:告警信息“WARNING: The conda.compat module is deprecated and will be removed in a future release.”
(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. | py37_0 2.1 MB defaults
------------------------------------------------------------
Total: 2.1 MB The following packages will be UPDATED: conda 4.6.-py37_0 --> 4.6.-py37_0 Proceed ([y]/n)? y Downloading and Extracting Packages
conda-4.6. | 2.1 MB | ############################################################################ | %
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. (base) C:\Users\guowli>conda env list
# conda environments:
#
base * C:\Office-Tools\Anaconda3 (base) C:\Users\guowli>