Python - Anaconda
Posted Anliven - DevOpsNew
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - Anaconda相关的知识,希望对你有一定的参考价值。
1- 简介
- 支持 Linux, Mac, Windows系统;
- 包含了Python和相关的配套工具,包括许多非常有用的第三方库;
- 利用Conda来管理包和运行环境,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题;
Conda
用来管理包(packages)、依赖与环境(environment)的工具(可执行命令);
- 包管理:与pip类似,conda将所有工具、第三方包都当做package来管理(包括python和conda自身),而且能够安装非python的包;
- 环境管理:可以方便地安装各种版本python、各种package、创建虚拟环境并快速切换;
- 文档:https://conda.io/docs/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和Anaconda中都没有找到需要安装的包,可以通过pip命令安装。
先激活指定的环境,然后通过pip命令安装指定的包,可以通过“--proxy”参数设置代理地址。
- source activate <env-name>
- pip install <package-name>
Anaconda修改pip源
https://blog.csdn.net/u014779536/article/details/108127183
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 显示所有运行环境 activate <env_name> windows系统下,激活(进入)环境 deactivate windows系统下,去激活(退出)当前环境
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 “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.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>
7.2 “CondaHTTPError: HTTP 000 CONNECTION FAILED for url”
问题现象
λ conda install jenkinsapi Collecting package metadata (current_repodata.json): failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/current_repodata.json> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. \'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64\'
处理方法
1. 通过“conda search <package-name>”命令确认要安装的包是否存在,如果包名称不一致,将报错
2. 修改镜像源的配置, 将用户目录下的.condarc文件中的所有https换成http
如果Windows用户无法直接创建名为.condarc的文件,可先执行“conda config --set show_channel_urls yes”生成该文件之后再修改。
λ cat ~/.condarc channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ ssl_verify: false show_channel_urls: true
然后运行`conda clean -i`清除索引缓存,保证用的是镜像站提供的索引,重新安装库时会重新下载repo信息。
7.3 在Anaconda的环境下,使用pip安装库报错“SSL: CERTIFICATE_VERIFY_FAILED”
问题现象
λ pip install jenkinsapi Collecting jenkinsapi WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by \'SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\'))\': /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by \'SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\'))\': /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by \'SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\'))\': /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by \'SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\'))\': /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by \'SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\'))\': /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host=\'files.pythonhosted.org\', port=443): Max retries exceeded with url: /packages/e2/76/c7ceb2fac632e2772d38ffcf446b4432582ddc6d6ea2d19155e06011d1d4/jenkinsapi-0.3.11-py2.py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)\')))
处理方法
国内防火墙的限制,自当镜像源或者`--trusted-host`即可解决。
1. 指定可用的镜像源
”pip install <package-name> -i <source-url>“
2. 指定`--trusted-host`
“pip install jenkinsapi --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org”
以上是关于Python - Anaconda的主要内容,如果未能解决你的问题,请参考以下文章