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


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

 

 
 
 
 
3,224
 

1、Anaconda概述

Anaconda是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。Anaconda利用工具/命令conda來進行package和environment的管理,並且已經包含了Python和相關的配套工具。

這里先解釋下conda、anaconda這些概念的差別。

conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。

包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python並可以快速切換。

Anaconda則是一個打包的集合,里面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等,所以也稱為Python的一種發行版。

其實還有Miniconda,顧名思義,它只包含最基本的內容——python與conda,以及相關的必須依賴項,對於空間要求嚴格的用戶,Miniconda是一種選擇。

進入下文之前,說明一下conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環境管理的約束,能非常方便地安裝各種版本python、各種package並方便地切換。

2、Anaconda的安裝

Anaconda的下載頁參見官網下載,Linux、Mac、Windows均支持。

安裝時,會發現有兩個不同版本的Anaconda,分別對應Python 2.7和Python 3.5,兩個版本其實除了這點區別外其他都一樣。后面我們會看到,安裝哪個版本並不本質,因為通過環境管理,我們可以很方便地切換運行時的Python版本。(由於我常用的Python是2.7和3.4,因此傾向於直接安裝Python 2.7對應的Anaconda)

這里我安裝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" )

然后點確定,再點重試即可安裝完成。

3、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

4、錯誤處理

安裝好以后,正常安裝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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM