<div class="copyright-area">原文出處: <a target="_blank" href="http://www.jianshu.com/p/169403f7e40c#">魚心fishstar</a> </div><div>
打算學習 Python 來做數據分析的你,是不是在開始時就遇到各種麻煩呢?
- 到底該裝 Python2 呢還是 Python3 ?
- 為什么安裝 Python 時總是出錯?
- 怎么安裝工具包呢?
- 為什么提示說在安裝這個工具前必須先安裝一堆其他不明所以的工具?
相信大多數 Python 的初學者們都曾為環境問題而頭疼不已,但你並不孤獨,大家都是這么折騰過來的。為了在入門時少走彎路,並且讓高漲的積極性不至於太受打擊,這里推薦使用 Anaconda 來管理你的安裝環境和各種工具包。
本文介紹了Anaconda的使用,全文大綱如下:
- 為什么選擇 Anaconda
- 什么是 Anaconda
- 什么是 conda
- Anaconda 的優點
- 如何安裝 Anaconda
- 如何管理 Python 包
- 如何管理 Python 環境
一、為什么選擇Anaconda?
1.1 什么是 Anaconda?
Anaconda是專注於數據分析的Python發行版本,包含了conda、Python等190多個科學包及其依賴項。作為好奇寶寶的你是不是發現了一個新名詞 conda,那么你一定會問 conda 又是什么呢?
1.2 什么是 conda ?
conda 是開源包(packages)和虛擬環境(environment)的管理系統。
- packages 管理: 可以使用 conda 來安裝、更新 、卸載工具包 ,並且它更關注於數據科學相關的工具包。在安裝 anaconda 時就預先集成了像 Numpy、Scipy、 pandas、Scikit-learn 這些在數據分析中常用的包。另外值得一提的是,conda 並不僅僅管理Python的工具包,它也能安裝非python的包。比如在新版的 Anaconda 中就可以安裝R語言的集成開發環境 Rstudio。
- 虛擬環境管理: 在conda中可以建立多個虛擬環境,用於隔離不同項目所需的不同版本的工具包,以防止版本上的沖突。對糾結於 Python 版本的同學們,我們也可以建立 Python2 和 Python3 兩個環境,來分別運行不同版本的 Python 代碼。
知道 是什么(what) 的同時,我們也需要問一問 為什么(why)。那么,為什么要選擇用Anaconda呢?
1.3 Anaconda 的優點?
Anaconda的優點總結起來就八個字:省時省心、分析利器。
- 省時省心: Anaconda通過管理工具包、開發環境、Python版本,大大簡化了你的工作流程。不僅可以方便地安裝、更新、卸載工具包,而且安裝時能自動安裝相應的依賴包,同時還能使用不同的虛擬環境隔離不同要求的項目。
- 分析利器: 在 Anaconda 官網中是這么宣傳自己的:適用於企業級大數據分析的Python工具。其包含了720多個數據科學相關的開源包,在數據可視化、機器學習、深度學習等多方面都有涉及。不僅可以做數據分析,甚至可以用在大數據和人工智能領域。
解決了 是什么 以及 為什么 的問題后,下面讓我們看一下 怎么做(How)。
二、如何安裝Anaconda?
可以從這里下載 Anaconda 的安裝程序以及查看安裝說明。無論是 Windows、Linux 還是 MAC 的 OSX 系統,都可以找到對應的安裝軟件。如果你的電腦是64位則盡量選64位版本。至於 Python 的版本是 2.7 還是 3.x,這里推薦你使用 Python3,因為 Python2 終將停止維護。可能目前市面上大多數教程使用的都還是 Python2,這也不用着急,因為在 Anaconda 中可以同時管理兩個 Python 版本的環境。
根據提示進行安裝,完成后你大概會驚訝地發現電腦中多了好多應用,不用擔心,我們一項項來看:
- Anaconda Navigtor :用於管理工具包和環境的圖形用戶界面,后續涉及的眾多管理命令也可以在 Navigator 中手工實現。
- Jupyter notebook :基於web的交互式計算環境,可以編輯易於人們閱讀的文檔,用於展示數據分析的過程。
- qtconsole :一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 可以直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數。
- spyder :一個使用Python語言、跨平台的、科學運算集成開發環境。
安裝完成后,我們還需要對所有工具包進行升級,以避免可能發生的錯誤。打開你電腦的終端,在命令行中輸入:
<div id="crayon-5bd59c7b9b50e161081762" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda upgrade --all</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b50e161081762-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b50e161081762-1"><span class="crayon-e">conda </span><span class="crayon-v">upgrade</span><span class="crayon-h"> </span><span class="crayon-o">--</span><span class="crayon-v">all</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
在終端詢問是否安裝如下升級版本時,輸入 y
。
有的情況下,你可能會遇到找不到 conda 命令的錯誤提示,這很可能是環境路徑設置的問題,需要添加conda環境變量:export PATH=xxx/anaconda/bin:$PATH
, 其中xxx替換成anaconda的安裝路徑。
至此,安裝完成,下面讓我們看一下如何用 Anaconda 管理工具包和環境。
三、如何管理Python包?
安裝一個 package:
<div id="crayon-5bd59c7b9b517815962471" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda install package_name</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b517815962471-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b517815962471-1"><span class="crayon-e">conda </span><span class="crayon-e">install </span><span class="crayon-v">package_name</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
這里 package_name 是需要安裝包的名稱。你也可以同時安裝多個包,比如同時安裝numpy 、scipy 和 pandas,則執行如下命令:
<div id="crayon-5bd59c7b9b51d437098146" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda install numpy scipy pandas</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b51d437098146-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b51d437098146-1"><span class="crayon-e">conda </span><span class="crayon-e">install </span><span class="crayon-e">numpy </span><span class="crayon-e">scipy </span><span class="crayon-v">pandas</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
你也可以指定安裝的版本,比如安裝 1.1 版本的 numpy :
<div id="crayon-5bd59c7b9b521020437381" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda install numpy=1.10</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b521020437381-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b521020437381-1"><span class="crayon-e">conda </span><span class="crayon-e">install </span><span class="crayon-v">numpy</span><span class="crayon-o">=</span><span class="crayon-cn">1.10</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
移除一個 package:
<div id="crayon-5bd59c7b9b525611442775" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda remove package_name</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b525611442775-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b525611442775-1"><span class="crayon-e">conda </span><span class="crayon-e">remove </span><span class="crayon-v">package_name</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
升級 package 版本:
<div id="crayon-5bd59c7b9b528500577734" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda update package_name</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b528500577734-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b528500577734-1"><span class="crayon-e">conda </span><span class="crayon-e">update </span><span class="crayon-v">package_name</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
查看所有的 packages:
<div id="crayon-5bd59c7b9b52b997240292" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda list</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b52b997240292-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b52b997240292-1"><span class="crayon-e">conda </span><span class="crayon-v">list</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
如果你記不清 package 的具體名稱,也可以進行模糊查詢:
<div id="crayon-5bd59c7b9b52e807648733" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda search search_term</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b52e807648733-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b52e807648733-1"><span class="crayon-e">conda </span><span class="crayon-e">search </span><span class="crayon-v">search_term</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
四、如何管理Python環境?
默認的環境是 root,你也可以創建一個新環境:
<div id="crayon-5bd59c7b9b531927025652" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda create -n env_name list of packages</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b531927025652-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b531927025652-1"><span class="crayon-e">conda </span><span class="crayon-v">create</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-e">env_name </span><span class="crayon-e">list </span><span class="crayon-e">of </span><span class="crayon-v">packages</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
其中 -n
代表 name,env_name
是需要創建的環境名稱,list of packages
則是列出在新環境中需要安裝的工具包。
例如,當我安裝了 Python3 版本的 Anaconda 后,默認的 root 環境自然是 Python3,但是我還需要創建一個 Python 2 的環境來運行舊版本的 Python 代碼,最好還安裝了 pandas 包,於是我們運行以下命令來創建:
<div id="crayon-5bd59c7b9b535933494410" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda create -n py2 python=2.7 pandas</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b535933494410-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b535933494410-1"><span class="crayon-e">conda </span><span class="crayon-v">create</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-e">py2 </span><span class="crayon-v">python</span><span class="crayon-o">=</span><span class="crayon-cn">2.7</span><span class="crayon-h"> </span><span class="crayon-v">pandas</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
細心的你一定會發現,py2 環境中不僅安裝了 pandas,還安裝了 numpy 等一系列 packages,這就是使用 conda 的方便之處,它會自動為你安裝相應的依賴包,而不需要你一個個手動安裝。
進入名為 env_name 的環境:
<div id="crayon-5bd59c7b9b538238561770" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">source activate env_name</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b538238561770-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b538238561770-1"><span class="crayon-e">source </span><span class="crayon-e">activate </span><span class="crayon-v">env_name</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
退出當前環境:
<div id="crayon-5bd59c7b9b53b990275358" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">source deactivate</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b53b990275358-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b53b990275358-1"><span class="crayon-e">source </span><span class="crayon-v">deactivate</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
另外注意,在 Windows 系統中,使用 activate env_name
和 deactivate
來進入和退出某個環境。
刪除名為 env_name 的環境:
<div id="crayon-5bd59c7b9b53e444669360" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda env remove -n env_name</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b53e444669360-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b53e444669360-1"><span class="crayon-e">conda </span><span class="crayon-e">env </span><span class="crayon-v">remove</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-v">env_name</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
顯示所有的環境:
<div id="crayon-5bd59c7b9b541123598798" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda env list</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b541123598798-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b541123598798-1"><span class="crayon-e">conda </span><span class="crayon-e">env </span><span class="crayon-v">list</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
當分享代碼的時候,同時也需要將運行環境分享給大家,執行如下命令可以將當前環境下的 package 信息存入名為 environment 的 YAML 文件中。
<div id="crayon-5bd59c7b9b545110984878" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda env export > environment.yaml</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b545110984878-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b545110984878-1"><span class="crayon-e">conda </span><span class="crayon-e">env </span><span class="crayon-v">export</span><span class="crayon-h"> </span><span class="crayon-o">></span><span class="crayon-h"> </span><span class="crayon-v">environment</span><span class="crayon-sy">.</span><span class="crayon-v">yaml</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
同樣,當執行他人的代碼時,也需要配置相應的環境。這時你可以用對方分享的 YAML 文件來創建一摸一樣的運行環境。
<div id="crayon-5bd59c7b9b548276023444" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style="margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important; height: auto;">
<div class="crayon-toolbar" data-settings=" show" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><span class="crayon-title"></span>
<div class="crayon-tools" style="font-size: 13px !important;height: 19.5px !important; line-height: 19.5px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="切換是否顯示行編號"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="純文本顯示代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="切換自動換行"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="點擊展開代碼" style="display: none;"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="復制代碼"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="在新窗口中顯示代碼"><div class="crayon-button-icon"></div></div></div></div>
<div class="crayon-info" style="min-height: 18.2px !important; line-height: 18.2px !important;"></div>
<div class="crayon-plain-wrap"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="tab-size: 4; font-size: 13px !important; line-height: 15px !important; z-index: 0; opacity: 0;">conda env create -f environment.yaml</textarea></div>
<div class="crayon-main" style="position: relative; z-index: 1;">
<table class="crayon-table" style="">
<tbody><tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5bd59c7b9b548276023444-1">1</div></div>
</td>
<td class="crayon-code"><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5bd59c7b9b548276023444-1"><span class="crayon-e">conda </span><span class="crayon-e">env </span><span class="crayon-v">create</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">f</span><span class="crayon-h"> </span><span class="crayon-v">environment</span><span class="crayon-sy">.</span><span class="crayon-v">yaml</span></div></div></td>
</tr>
</tbody></table>
</div>
</div>
至此,你已跨入 Anaconda 的大門,后續就可以徜徉在 Python 的海洋中了。
祝學習愉快!
注:本文代碼示例參考自Udacity數據分析課程之Anaconda章節。
<div class="post-adds">
<span data-post-id="87522" class=" btn-bluet-bigger href-style vote-post-up register-user-only "><i class="fa fa-thumbs-o-up"></i> <h10 id="87522votetotal">2</h10> 贊</span>
<span data-book-type="1" data-site-id="13" data-item-id="87522" data-item-type="1" class=" btn-bluet-bigger href-style bookmark-btn register-user-only "><i class="fa fa-bookmark-o "></i> 19 收藏</span>
<a href="#article-comment"><span class="btn-bluet-bigger href-style hide-on-480"><i class="fa fa-comments-o"></i> 2 評論</span></a>
<!-- JiaThis Button BEGIN -->
<div class="jiathis_style_24x24" style="display: inline-flex; position: relative; margin: 0; clear: both;float: right;">
<a class="jiathis_button_tsina"></a>
<a class="jiathis_button_weixin"></a>
<a class="jiathis_button_qzone"></a>
<a class="jiathis_button_fb hide-on-480"></a>
<a href="http://www.jiathis.com/share?uid=1745061" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank"></a>
</div>
</div>
<!-- BEGIN #author-bio -->
</div>