https://www.waitalone.cn/anaconda-install-error.htmlhtml
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,能够很方便地解决多版本python并存、切换以及各类第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,而且已经包含了Python和相关的配套工具。python
这里先解释下conda、anaconda这些概念的差异。linux
conda能够理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。django
包管理与pip的使用相似,环境管理则容许用户方便地安装不一样版本的python并能够快速切换。windows
Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,因此也称为Python的一种发行版。python2.7
其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。编辑器
进入下文以前,说明一下conda的设计理念——conda将几乎全部的工具、第三方包都当作package对待,甚至包括python和conda自身!所以,conda打破了包管理与环境管理的约束,能很是方便地安装各类版本python、各类package并方便地切换。ide
Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。工具
安装时,会发现有两个不一样版本的Anaconda,分别对应Python 2.7和Python 3.5,两个版本其实除了这点区别外其余都同样。后面咱们会看到,安装哪一个版本并不本质,由于经过环境管理,咱们能够很方便地切换运行时的Python版本。(因为我经常使用的Python是2.7和3.4,所以倾向于直接安装Python 2.7对应的Anaconda)post
这里我安装miniconda,下载地址以下:
https://conda.io/miniconda.html
2.1 安装报错编码错误处理
出现这个窗口之后,不要点肯定,而后进入到anaconda安装文件夹,通常是C:\ProgramData\Anaconda2,若是你提示的错误是:UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4 blabla,那么进入Lib文件夹,用编辑器打开_nsis.py,在import sys下面加上这两句:
1 |
reload (sys) |
2 |
sys.setdefaultencoding( "utf-8" ) |
而后点肯定,再点重试便可安装完成。
3.1 管理包
conda 是一种只能经过命令行来使用的程序。相似于pip那样能够对Python库的包进行管理。
安装命令:
01 |
# 安装命令 |
02 |
conda install package_name |
03 |
# 安装numpy,输入 |
04 |
conda install numpy |
05 |
# 安装 matplotlib |
06 |
conda install matplotlib |
07 |
# 查看已安装的包 |
08 |
conda list |
09 |
# 搜索安装包 |
10 |
conda search search_term |
11 |
# 同时安装多个包 |
12 |
conda install numpy scipy pandas |
13 |
# 安装指定版本的包 |
14 |
conda install numpy=1.11 |
15 |
# 卸载包 |
16 |
conda remove package_name |
17 |
# 更新包 |
18 |
conda update package_name |
19 |
# 更新环境中的全部包 |
20 |
conda update --all |
加速conda下载速度,使用国内镜像源:
1 |
conda config --add channels https: //mirrors .tuna.tsinghua.edu.cn /anaconda/pkgs/free/ |
2 |
conda config --add channels https: //mirrors .tuna.tsinghua.edu.cn /anaconda/pkgs/main/ |
3 |
conda config -- set show_channel_urls yes |
3.2 管理环境
除了管理包以外,conda 仍是虚拟环境管理器。它相似于另外两个很流行的环境管理器,即 virtualenv 和 pyenv。
环境能够分隔不一样项目的包。由于咱们使用的时候会依赖于某个库的不一样版本的代码或在py2和py3之间进行切换。
也能够将环境中的包的列表导出为文件,而后将该文件与代码包括在一块儿。这能让其余人轻松加载代码的全部依赖项。
pip 提供了相似的功能,即 pip freeze > requirements.txt
建立环境:
conda create -n env_name list of packages,
-n env_name 设置环境的名称(-n 是指名称),
而 list of packages 是要安装在环境中的包的列表。
建立环境时,能够指定要安装在环境中的 Python 版本。
conda create -n py3 python=3 或 conda create -n py2 python=2 。
要安装特定版本(例如 Python 3.3),请使用 conda create -n py python=3.3。
01 |
# 基于 python3.6 建立一个名为test_py3 的环境 |
02 |
conda create --name test_py3 python=3.6 |
03 |
04 |
# 基于 python2.7 建立一个名为test_py2 的环境 |
05 |
conda create --name test_py2 python=2.7 |
06 |
07 |
# 激活 test 环境 |
08 |
activate test_py2 # windows |
09 |
source activate test_py2 # linux/mac |
10 |
11 |
# 切换到python3 |
12 |
activate test_py3 |
3.3 进入环境
建立了环境后,在 OSX/Linux 上使用 source activate my_env 进入环境。在 Windows 上,请使用 activate my_env。
要离开环境,请键入 source deactivate(在 OSX/Linux 上)。在 Windows 上,请使用 deactivate。
3.4 保存和加载环境
共享环境这项功能确实颇有用,它能让其余人安装你的代码中使用的全部包,并确保这些包的版本正确。可使用
conda env export > environment.yaml
将包保存为 YAML。
第一部分 conda env export 写出环境中的全部包(包括 Python 版本)。
第二部分 > environment.yaml 将导出的文本写入到 YAML 文件 environment.yaml 中。如今能够共享此文件,并且其余人可以建立和你用于项目相同的环境。
要经过环境文件建立环境,请使用 conda env create -f environment.yaml。这会建立一个新环境,并且它具备在 environment.yaml 中列出的同一库。
3.5 列出环境
若是忘记了环境的名称,可使用 conda env list 或conda info -e列出你建立的全部环境。你会看到环境的列表,并且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在环境中时使用的环境)名为 root。
3.6 删除环境
再也不使用某些环境,可使用 conda env remove -n env_name 删除指定的环境(在这里名为 env_name)。
3.7 共享环境
在 GitHub 上共享代码时,最好一样建立环境文件并将其包括在代码库中。这能让其余人更轻松地安装你的代码的全部依赖项。对于不使用 conda 的人,我一般还会使用 pip freeze(在此处了解详情)将一个 pip requirements.txt 文件包括在内。
pip freeze > requirements.txt
pip install -r requirements.txt
安装好之后,正常安装django,发如今建立项目的时候会报编码 错误,"UnicodeDecodeError: 'ascii' codec can't decode"
解决办法:
在anaconda的安装路径下找到Lib/mimetypes.py,在import sys以后加入以下代码
1 |
if sys.getdefaultencoding() != 'gbk' : |
2 |
reload(sys) |
3 |
sys.setdefaultencoding( 'gbk' ) |
https://www.zhihu.com/question/42263480
http://python.jobbole.com/86236/
https://foofish.net/compatible-py2-and-py3.html
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/