Anaconda(miniconda)安装及使用--转
https://www.waitalone.cn/anaconda-install-error.html
?
3,2241、Anaconda概述
Anaconda是一個用于科學(xué)計(jì)算的Python發(fā)行版,支持 Linux, Mac, Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問題。Anaconda利用工具/命令conda來進(jìn)行package和environment的管理,并且已經(jīng)包含了Python和相關(guān)的配套工具。
這里先解釋下conda、anaconda這些概念的差別。
conda可以理解為一個工具,也是一個可執(zhí)行命令,其核心功能是包管理與環(huán)境管理。
包管理與pip的使用類似,環(huán)境管理則允許用戶方便地安裝不同版本的python并可以快速切換。
Anaconda則是一個打包的集合,里面預(yù)裝好了conda、某個版本的python、眾多packages、科學(xué)計(jì)算工具等等,所以也稱為Python的一種發(fā)行版。
其實(shí)還有Miniconda,顧名思義,它只包含最基本的內(nèi)容——python與conda,以及相關(guān)的必須依賴項(xiàng),對于空間要求嚴(yán)格的用戶,Miniconda是一種選擇。
進(jìn)入下文之前,說明一下conda的設(shè)計(jì)理念——conda將幾乎所有的工具、第三方包都當(dāng)做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環(huán)境管理的約束,能非常方便地安裝各種版本python、各種package并方便地切換。
2、Anaconda的安裝
Anaconda的下載頁參見官網(wǎng)下載,Linux、Mac、Windows均支持。
安裝時,會發(fā)現(xiàn)有兩個不同版本的Anaconda,分別對應(yīng)Python 2.7和Python 3.5,兩個版本其實(shí)除了這點(diǎn)區(qū)別外其他都一樣。后面我們會看到,安裝哪個版本并不本質(zhì),因?yàn)橥ㄟ^環(huán)境管理,我們可以很方便地切換運(yùn)行時的Python版本。(由于我常用的Python是2.7和3.4,因此傾向于直接安裝Python 2.7對應(yīng)的Anaconda)
這里我安裝miniconda,下載地址如下:
https://conda.io/miniconda.html
2.1 安裝報錯編碼錯誤處理
出現(xiàn)這個窗口以后,不要點(diǎn)確定,然后進(jìn)入到anaconda安裝文件夾,一般是C:\ProgramData\Anaconda2,如果你提示的錯誤是:UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4 blabla,那么進(jìn)入Lib文件夾,用編輯器打開_nsis.py,在import sys下面加上這兩句:
| 1 | reload(sys) |
| 2 | sys.setdefaultencoding(?"utf-8"?) |
然后點(diǎn)確定,再點(diǎn)重試即可安裝完成。
3、Anaconda的使用
3.1 管理包
conda 是一種只能通過命令行來使用的程序。類似于pip那樣可以對Python庫的包進(jìn)行管理。
安裝命令:
| 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 | # 更新環(huán)境中的所有包 |
| 20 | conda update --all |
加速conda下載速度,使用國內(nèi)鏡像源:
| 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 管理環(huán)境
除了管理包之外,conda 還是虛擬環(huán)境管理器。它類似于另外兩個很流行的環(huán)境管理器,即 virtualenv 和 pyenv。
環(huán)境可以分隔不同項(xiàng)目的包。因?yàn)槲覀兪褂玫臅r候會依賴于某個庫的不同版本的代碼或在py2和py3之間進(jìn)行切換。
也可以將環(huán)境中的包的列表導(dǎo)出為文件,然后將該文件與代碼包括在一起。這能讓其他人輕松加載代碼的所有依賴項(xiàng)。
pip 提供了類似的功能,即 pip freeze > requirements.txt
創(chuàng)建環(huán)境:
conda create -n env_name list of packages,
-n env_name 設(shè)置環(huán)境的名稱(-n 是指名稱),
而 list of packages 是要安裝在環(huán)境中的包的列表。
創(chuàng)建環(huán)境時,可以指定要安裝在環(huán)境中的 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 創(chuàng)建一個名為test_py3 的環(huán)境 |
| 02 | conda create --name test_py3 python=3.6 |
| 03 | ? |
| 04 | # 基于 python2.7 創(chuàng)建一個名為test_py2 的環(huán)境 |
| 05 | conda create --name test_py2 python=2.7 |
| 06 | ? |
| 07 | # 激活 test 環(huán)境 |
| 08 | activate test_py2??# windows |
| 09 | source?activate test_py2?# linux/mac |
| 10 | ? |
| 11 | # 切換到python3 |
| 12 | activate test_py3 |
3.3 進(jìn)入環(huán)境
創(chuàng)建了環(huán)境后,在 OSX/Linux 上使用 source activate my_env 進(jìn)入環(huán)境。在 Windows 上,請使用 activate my_env。
要離開環(huán)境,請鍵入 source deactivate(在 OSX/Linux 上)。在 Windows 上,請使用 deactivate。
3.4 保存和加載環(huán)境
共享環(huán)境這項(xiàng)功能確實(shí)很有用,它能讓其他人安裝你的代碼中使用的所有包,并確保這些包的版本正確。可以使用
conda env export > environment.yaml
將包保存為 YAML。
第一部分 conda env export 寫出環(huán)境中的所有包(包括 Python 版本)。
第二部分 > environment.yaml 將導(dǎo)出的文本寫入到 YAML 文件 environment.yaml 中。現(xiàn)在可以共享此文件,而且其他人能夠創(chuàng)建和你用于項(xiàng)目相同的環(huán)境。
要通過環(huán)境文件創(chuàng)建環(huán)境,請使用 conda env create -f environment.yaml。這會創(chuàng)建一個新環(huán)境,而且它具有在 environment.yaml 中列出的同一庫。
3.5 列出環(huán)境
如果忘記了環(huán)境的名稱,可以使用 conda env list 或conda info -e列出你創(chuàng)建的所有環(huán)境。你會看到環(huán)境的列表,而且你當(dāng)前所在環(huán)境的旁邊會有一個星號。默認(rèn)的環(huán)境(即當(dāng)你不在環(huán)境中時使用的環(huán)境)名為 root。
3.6 刪除環(huán)境
不再使用某些環(huán)境,可以使用 conda env remove -n env_name 刪除指定的環(huán)境(在這里名為 env_name)。
3.7 共享環(huán)境
在 GitHub 上共享代碼時,最好同樣創(chuàng)建環(huán)境文件并將其包括在代碼庫中。這能讓其他人更輕松地安裝你的代碼的所有依賴項(xiàng)。對于不使用 conda 的人,我通常還會使用 pip freeze(在此處了解詳情)將一個 pip requirements.txt 文件包括在內(nèi)。
pip freeze > requirements.txt
pip install -r requirements.txt
4、錯誤處理
安裝好以后,正常安裝django,發(fā)現(xiàn)在創(chuàng)建項(xiàng)目的時候會報編碼 錯誤,"UnicodeDecodeError: 'ascii' codec can't decode"
解決辦法:
在anaconda的安裝路徑下找到Lib/mimetypes.py,在import sys之后加入如下代碼
| 1 | if?sys.getdefaultencoding() !=?'gbk': |
| 2 | ????reload(sys) |
| 3 | ????sys.setdefaultencoding('gbk') |
參考網(wǎng)址:
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/
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/9069130.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Anaconda(miniconda)安装及使用--转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式定时任务调度系统技术选型--转
- 下一篇: Netflix正式开源其API网关Zuu