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/