Anaconda編程環境

從 集智百科
跳到: 導覽搜尋

目錄

本文概述

歡迎打開這篇介紹Anaconda的文章,它會教你怎樣用Anaconda來管理一些與Python配合使用的軟件包與運行環境。 通過Anaconda, 你能更輕鬆的安裝那些經常在大數據處理中使用到的軟件。你也可以通過它輕而易舉的搭建可以同時進行多個項目的虛擬環境。Anaconda 簡化了我們的工作流程,解決了很多Python版本與軟件包安裝時遇到的問題。 Anaconda其實就是一系列軟件的集合發行版,包括Conda、Python以及150多個科學軟件包。Conda就是一個軟件包與運行環境的管理器。Anaconda大概會佔用你500MB的空間,因為它包含了Python中涉及到大數據處理的最常用軟件包。如果你不需要所有的軟件包,或者想保留你的帶寬或硬盤空間,你也可以下載Miniconda,一個只包含Conda和Python的發行版。你也可以用Conda安裝其他任何可用的軟件包,只是它們不是一起下載來的。 Conda是一個只能使用命令行來操作的程序,如果你還不習慣,可以先去學習一下針對Windows或Linux與OSX 進行命令行操作的相關教程。 你可能已經安裝了Python,並對為什麼要裝這個Anaconda而感到好奇。 首先,因為Anaconda包含了一堆大數據分析所需要的軟件包,你可以立即開始工作。另外,使用Conda來管理你的軟件包和運行環境可以減少你以後使用多個數據庫時遇到的各種問題。

軟件包的管理

2 看圖王.jpg

軟件包管理器用於在計算機上安裝庫和其他軟件。可能你已經熟悉pip了,它是Python庫的默認包管理器。 Conda與pip類似,只不過Conda的可用包專註於數據科學,而pip應用廣泛。然而,conda並不像pip那樣為Python量身打造,它也可以安裝非Python包。它是任何軟件堆棧的包管理器。話雖如此,不是所有的Python庫都可以從Anaconda發行版和conda獲得。 你可以(並且今後仍然)使用pip和conda一起安裝軟件包。Conda安裝預編譯的軟件包。例如,Anaconda發行版帶有使用MKL庫編譯的Numpy,Scipy和Scikit-learn,它們加快了各種數學操作。這些軟件包由供應商維護,這意味着它們通常落後於新版本。但是對於需要為許多系統構建軟件包的客戶來說,這些軟件包往往更穩定(並且更加方便您使用)。

Environments 運行環境

A444.png

Conda除了可以管理包,也是一個虛擬環境管理工具。它與virutalenv和pyenv等其他流行的環境管理工具類似。不同的項目的環境允許你分離和獨立出你在不同項目中使用的不同包。你通常會經常使用不同的代碼工作,而這些代碼依賴於不同版本的庫。例如,你的代碼可能使用了Numpy的新特性,而另一些代碼使用了一些被廢除的舊特性。但是你實際上不可能一次同時安裝2個不同版本的Numpy。取而代之,你可以針對每個版本Numpy設置一個環境,然後讓你的項目在恰當的環境下工作。當你在Python 2和Python 3之間切換時,這種問題同樣很常見。你使用的舊代碼可能不能在Python 3下運行,而新的代碼不能在Python 2下運行。但同時安裝2個Python會導致許多混亂和問題。而使用分離的環境是一個更好的選擇。 你同樣可以把一個環境中包的列表輸出到文件中,然後把這個文件和你的代碼放在一起。這樣其他人就可以簡單地載入所有你的代碼所依賴的庫。Pip也有類似的功能,可以通過pip freeze > requirements.txt將環境導出。

安裝Anaconda

下面,我將詳細講述如何使用Anaconda。首先,我將介紹如何安裝,然後是如何使用軟件包管理器,最後介紹創建和管理運行環境

Anaconda 可以在Windows, Mac OS X,Linux上面運行。可以在下面的鏈接找到安裝文件和安裝說明https://www.continuum.io/downloads。如果你已經在電腦上安裝了Python, 此次安裝不會破壞任何東西。相反的,您的腳本和程序使用的默認Python將是Anaconda自帶的。選擇Python 3.5版本,也可以安裝Python 2版本。此外,如果您有64位操作系統,請選擇64位安裝程序,否則選擇32位安裝程序。繼續選擇適當的版本,然後安裝它。然後繼續。

安裝後,您將自動在默認的conda環境中安裝您可以在下面看到所有軟件包。您可以通過在終端窗口輸入conda list檢查自己的安裝

Conda list 1.png

Conda list 4.png

在windows系統上安裝Anaconda

很多應用會和Anaconda一起被安裝

• Anaconda Navigator, 用於管理你的環境和包的圖形界面

• Anaconda Prompt, 可以通過命令行管理你的環境和包的終端程序

• Spyder, 面向科學開發的集成開發環境(IDE)

為了避免錯誤, 最好是在默認環境更新所有的包。打開Anaconda Prompt程序,在提示行,運行下面的命令:

 conda upgrade conda conda upgrade --all

當問你是否要安裝包的時候,回答yes。 初始安裝帶的包往往陳舊了,所以應該把這些陳舊的包升級以避免錯誤發生。

注意:在前面的步驟中,運行conda upgrade conda本來不需要,因為 --all已經包含了conda包本身,但是一些用戶不運行它會報錯。

在最後,我將請你在終端程序使用命令。我強烈建議你用這種方式開始學習Anaconda,然後稍後如果你喜歡,再使用圖形界面。

故障排除 如果你看到報錯信息: "conda command not found" 而你用的是 ZShell, 你可以這樣做:

添加 export PATH="/Users/username/anaconda/bin:$PATH" 到你的 .zsh_config配置文件里。

用conda安裝模塊包

在安裝好Anaconda後,conda也會隨之安裝成功。適用conda管理python的模塊包非常簡潔明快。 打開你的操作系統的命令行,然後輸入「conda install package_name」,其中package_name是你想要安裝的模塊包名稱。 如果conda查詢不到你想要安裝的包,也可以嘗試用python自帶的模塊包管理,輸入「pip install package_name」進行嘗試。

管理運行環境 environments

如同之前提到的,conda可以用來給你的項目創建獨立環境。創建環境,可以在終端中使用:

 conda create -n env_name [包的列表]

這裡,-n env_name 是為你的環境(-n就表示環境)命名,[包的列表]是你要在環境中安裝的包的列表。

例如,你可以創建一個名字為my_env的環境,並且安裝上了numpy包,那麼你可以輸入

 conda create -n my_env numpy

創建環境(1).png


創建環境時,可以指定要在環境中安裝的Python版本。 當你同時在Python 2.x和Python 3.x中使用代碼時,這是非常有用的。

要創建具有特定Python版本的環境,請執行類似

 conda create -n py3 python = 3

  conda create -n py2 python = 2

這樣的命令。

實際上,在我的個人計算機上,我同時有這兩個環境。我使用它們作為一般環境,而不綁定到任何具體項目,而是希望很方便地訪問每個Python版本。 這些命令將分別安裝最新版本的Python 3和2。

如果要安裝特定版本,例如 Python 3.3,使用

 conda create -n py python=3.3。

進入環境

一旦創建了環境,你只要在OSX / Linux上輸入

 source activate my_evn

就能進入環境。

在Windows上,使用

 active my_env

就能進入。 當你進入了環境時,你就能在終端提示符中看到環境名稱。 類似(my_env)〜$。

環境默認情況下僅安裝了幾個軟件包,以及在創建時安裝的軟件包。

你可以用conda list檢查它。在環境中安裝軟件包與之前相同:

 conda install [包名称]

只有這時,你安裝的特定軟件包才會在環境中可用。 要退出環境,請鍵入(在OSX / Linux上):

 source deactivate

在Windows上,使用

 deactivate

QQ截圖進入環境.png

保存與加載環境

Anaconda 有一個特別有用的特性就是可以分享運行環境,這樣其他人就可以下載所有的包,在合適的版本下使用您的代碼。

您可以通過 conda env export > environment.yaml保存包至YAML文件。在第一部分conda env目錄下中導出書寫所有在這個運行環境下的包,其中也包括python版本。

保存環境env-export.png

將輸出環境打印到終端

以上您可以看到運行環境的名稱和所有附屬已列出來。在第二部分輸出命令,用> environment.yaml可以寫輸出文本至YAML文件environment.yaml。這個文件可以被分享而且其他人可以與您創建相同運行環境來使用這個項目。從運行環境文件中創建運行環境用conda env 創建-f environment.yaml。這個將以在environment.yaml中已列出的名字來創建一個新的運行環境。

列表環境

如果您忘記了運行環境的名字(這種情況在我身上時有發生),用conda env list可以列出所有您創建過的環境名稱。您應該可以看到在最近您訪問的環境名稱後面會被標星。對於默認運行環境,當您不是一個人在使用這個運行環境時它被稱為根。

移除環境

你可以將不再需要使用的運行環境移除,

 conda env remove -n env_name 

將會移除所有特定運行環境(這裡,命名為env_name)

Python 2和Python 3的運行環境

有件事幫助了我很多,那就是擁有Python 2和Python 3獨立的環境。 我用

 conda create -n py2 python=2

 conda create -n py3 python=3

兩行代碼創造出兩個獨立的運行環境,也就是py2和py3。現在,針對各個版本的Python,我有一個通用的運行環境。在每一個運行環境里,我安裝了大部分標準數據科學包(numpy, scipy, pandas等等)。

我還發覺,為我正在處理工作的每個項目創建環境很有用。它非常適合非數據相關的項目,就像Web應用程序與Flask。例如,我就有一個使用Pelican的個人博客的環境。

共享環境

在GitHub上分享代碼時,製作一個環境文件夾並將其包含在信息存儲庫中是個好習慣。這將使人們更易安裝你的代碼的所有依賴項。我也通常使用pip凍結(點擊這裡了解更多)將pip requirements.txt文件包含在內,方便那些不使用conda的人。

了解更多

想要了解更多關於Conda以及它如何適應Python的生態系統,可以看看由Jake Vanderplas寫的這篇文章:Conda神話與誤解。這裡是Conda文檔供您稍後參考。

個人工具
名字空間
動作
導覽
工具箱