Anaconda(miniconda)安裝及使用--轉

https://www.waitalone.cn/anaconda-install-error.htmlhtml

 

 
 
 
 
3,224
 

一、Anaconda概述

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的安裝

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 安裝報錯編碼錯誤處理

miniconda-error

出現這個窗口之後,不要點肯定,而後進入到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" )

而後點肯定,再點重試便可安裝完成。

三、Anaconda的使用

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/

相關文章
相關標籤/搜索