當前位置:
首頁 > 最新 > 亞馬遜雲教程4:安裝Anaconda,多python環境,運行jupyter notebook

亞馬遜雲教程4:安裝Anaconda,多python環境,運行jupyter notebook

概要:安裝多python環境管理軟體conda,創建並管理多個python環境,後台運行jupyter notebook,然後在瀏覽器中運行python代碼。

讀者:準備在雲上使用python的朋友

時間:6000字,閱讀12min,操作20min

前提:亞馬遜雲教程3:文件傳輸,擴大存儲,S3,快速輸入命令

日常工作生活中小型的數據分析任務我們可能會用紙、筆、尺子和計算器來完成。重複性工作較多的任務可能選擇用Excel。當數據量和數據的特殊性不斷增加時,比如我們要分析生物裡面的DNA數據或金融市場中的數據,數據分析員一般會選擇用編程語言來完成。聽到編程語言,大家不用覺得它很難,它很高級或怎麼樣。其實,當我們深入到每一個數與數之間的運算時,用編程語言去完成分析任務和使用計算器是很類似的。我們在使用編程語言告訴計算機該使用什麼數據,做什麼運算,運算結果存放在哪裡。這樣就省去了使用計算器時,我們要用眼睛去尋找特定的數據、在計算器上按下加減乘除、把結果抄寫在紙上這些繁瑣的步驟。當編程語言寫好了之後(也稱為代碼寫好了之後),就算我們的數據換了,只要格式(數據的組織方式)沒變,我們就可以重複使用這段代碼去分析所有這樣子的數據。這也是分析員們喜歡使用編程語言去分析數據的一個原因。

在眾多編程語言中,python是一門被廣泛使用的語言。簡要列舉幾個python被經常使用的領域:人工智慧,生物數據,金融數據,圖像分析,網站建設。其被廣泛運用的原因至少要歸功於兩點:1)python容易學;2)python有大量別人已寫好的包。Python代碼非常接近英語自然語言(人們說話時使用的語言),這使得學過其他編程語言的人甚至是完全沒學過編程語言的人可以快速學習並運用python解決生活中的問題。而學過python之後,又可以幫助你理解其他語言。Python有許多其他人已經寫好的代碼,他們把有關聯的代碼封裝起來,稱之為包(模塊、庫,英文為package,module,library)。

一個比喻就是,一段代碼就像一篇文章或一個知識點,可以解決一個特定的問題,而一個包就像一本書,裡面有很多文章,這本書就是一個工具箱,可以用於解決一類問題。隨著你慢慢地學習,你會積累許多書,形成一個圖書館。而當你經驗越來越多時,你會接觸到不同領域的問題,如生物、金融等。這時你可以選擇把生物和金融的書都放進這一個圖書館,也可以建立兩個如書館,生物相關的包放進生物館,金融相關的包放進金融館。這樣,你要處理生物問題時就走進生物館工作,要處理金融問題時就走進金融館工作,在各自館內,你就可以快速尋找自己想用的書。

我們把這些不同的圖書館稱為python不同的虛擬環境,每次使用python時,可以選用其中一個環境。不同的環境也可以同時運行。也就是說,你可以同時給生物館和金融館安排任務。Anaconda是管理多個python虛擬環境的一個軟體。

安裝Anaconda

之前第2講中講到安裝軟體的兩種方法,一個是使用包管理器 安裝,另外一個是編譯源碼。一般而言,編譯源碼會相對複雜,不過Anaconda官網做了一個文件,通過那個文件我們可以快速編譯並安裝Anaconda,同時也能保證我們使用的軟體是官方最新的。我們可以谷歌搜索「Anaconda」,進入其下載頁面,截止寫作時間,最新版是4.3.1。Python有不同的版本,目前用的多的是,python2.7和python3系列的。就像微軟的office word有2007版,也有最新的2016版的。因為Anaconda是用來管理多個python環境的,不管我們這裡選擇什麼,我們後面還是可以創建另外一個版本的環境,所以我們可以選擇其中任意一個進行安裝。這裡我用 Python 3.6 作為例子。注意,你使用本地電腦進入這個下載頁面時,它會自動偵測你使用的系統,然後顯示出相應的下載頁面,我們要切換到「Download for Linux」以獲取Linux系統的下載鏈接。我們登錄到伺服器,下載它,安裝Anaconda。

然後我們根據官網下載頁面的提示進行安裝。

我們退出一下伺服器,再次登錄,之後就能使用Anaconda了。其調用方法是該單詞的詞尾 。

多Python環境

前面已經說到,當我們要處理一類特定的任務的時候,需要一些相聯繫的包,這時我們可以創建一個python的虛擬環境。而這個虛擬環境的創建,最開始需要決定的就是python的版本。目前流行的有python2.7和python3系列的版本。我們安裝的是Anaconda3,自帶的是python3.6的版本。所以當我們直接在命令行輸入 時,調用的就是python3.6了。不過我們可以使用 去安裝其他版本的python。下面的命令在伺服器上運行。

然後我們按照提示的 來啟用這個環境。

我們還可以在打開一個shell窗口,連接到伺服器,可以使用和當前窗口相同或者不同的python環境運行代碼。這樣,我們就可以在不同的環境之間自由切換了。而且不同的環境裡面,可以安裝其自己的包。也就是可以往兩個不同的圖書館裡面放進你想放的書。

運行jupyter notebook

在前面的例子中,我們是在命令行裡面在使用python。我們輸入的命令,和計算之後的結果,在我們關掉那個shell之後就沒有了。為了方便之後查看代碼運行結果、保存已輸入的代碼、同他人分享代碼和結果,我們可以使用jupyter notebook這個東西。它的功能就是創建一個筆記本,我們可以在裡面輸入代碼並且運行然後顯示結果,之後我們還可以下載這個筆記本,分享給別人。相比命令行,它也給了我們一個可視化的窗口,因為編寫和運行筆記本的地方在瀏覽器裡面。我們可以在jupyter notebook中創建不同環境的筆記本,比如python3.6,python2.7,甚至是其他語言的,比如R,bash等等。我們通過上面的方法安裝Anaconda的時候,其實已經把jupyter notebook安裝了。接下來我們看下怎麼運行並且訪問它。

1. 配置jupyter notebook配置文件

我們要對該文件做出以下更改(以下行號為寫作時的,之後可能會有些許不同):

第158行,把 改為 。首先,我們去掉了#注釋符,也就是把這一行啟用了。然後我們把localhost改成*,意思是說,讓全世界所有的ip地址都可以訪問notebook。

第201行,把 改為 。jupyter在啟動的時候,會默認開啟瀏覽器,但是因為我們是伺服器系統,沒有桌面系統,也就沒有瀏覽器,所以我們把它設置成否(False)。

第213行,把 改為 。這個是jupyter伺服器的埠號,後面會用到,去掉#,後面的數字可以選用一個你喜歡的。然後保存這個文件。

之後還有一個更改,我們要為jupyter伺服器設置密碼。首先要產生密碼。

再次編輯那個配置文件,第210行,把 改為 。然後我們再運行jupyter notebook伺服器。

2. 配置AWS安全組

在第一講的教程中,創建EC2的第六步,配置安全組,我們當時使用的是默認值,現在我們來講講安全組到底是什麼意思。我們可以把伺服器看做一棟房子,然後伺服器的Public IP地址看做是這個房子的電話號碼。世界上其他人通過這個電話號碼和這棟房子進行通訊。每次我們和伺服器通訊時,除了需要電話號碼之外,還需要一個分機號碼,這個分機號碼就是和伺服器連接時用的埠。ssh連接伺服器的原理大概是這樣。首先在這個房子裡面,一直有一個叫ssh的程序等在分機號碼22旁邊,一旦有人撥打電話,並且選擇分機22,這個ssh程序就接通電話,開始詢問驗證口令(密鑰對),驗證成功之後,撥打電話的人就可以通過這個電話開始控制這棟房子裡面其他人(程序)的行動。而這一切的前提是,亞馬遜雲允許全世界所有的人撥打這個電話號碼,並且選擇分機22,這就是我們在配置安全組時選擇默認值,亞馬遜雲會做的事情。

在這一講前面,我們已經成功地讓jupyter notebook站在9999這個分機旁邊,準備好接聽電話。但是我們還沒有在AWS層面允許其他人可以通過9999這個分機撥打電話。所以我們現在要重新配置一下安全組,允許所有人通過9999埠訪問伺服器。

我們進入到EC2控制台,左鍵單擊我們的伺服器,在頁面下方會出現這個伺服器的詳細信息。有一個是「Security groups(安全組)」,點擊右邊第一個鏈接,一般是「launch-wizard-1」(最後的數字可能不一樣)。這時我們會來到安全組控制台。點擊頁面中央偏左的「Inbound」。Inbound是入站的意思,對於伺服器來說,入站,就是別人打電話到伺服器。我們可以看到已經有一個埠「22」,而這些0代表所有人都可以撥打。我們現在要開通9999這個埠。依次點擊左邊的「Edit(編輯)」,「Add Rule(添加規則)」,前兩列保留默認值,第三列「Port Range(埠範圍)」,輸入9999(或者是你當時選用的你喜歡的埠),第四列Source選擇「Anywhere」。然後點擊右下角的「Save」。這樣就配置好安全組了。

3. 運行jupyter notebook

在上述操作完成後,我們就可以通過瀏覽器訪問筆記本了。我們先找到伺服器的Public IP,然後打開瀏覽器,在地址欄輸入 ,如 。這時,會看到頁面提示我們輸入密碼,輸入我們之前配置jupyter notebook時設置的密碼就可以進入jupyter notebook伺服器了。

這時,如果我們回到命令行,會發現那個正在運行的程序多了幾行輸出,類似下面這樣。這是jupyter伺服器的日誌。

如果我們按照它的提示,按 control C 來停止這個伺服器。

關閉了之後,如果我們再從瀏覽器訪問那個頁面,就發現不能訪問了。但是有時我們會想在運行某個耗時很長的命令的同時,在同一個窗口繼續輸入其他命令,這時我們需要把命令放到後台去執行。需要用到 和 這兩個關鍵詞。

的意思是,ignore the HUP (hangup),忽視掛斷信號。說人話就是,不要中斷這個程序。就像有些酒店進入房間的時候,需要插入房卡,這樣就接通了電流。我們登錄伺服器的時候,就像插入了房卡。當我們離開房間的時候,我們的筆記本電腦可能還在充電,我們希望拿走房卡,但是又不希望會斷電,這時我們需要把充電器接在不會斷電的電源那裡。在命令行裡面,nohup這個標誌就像是不會斷電的電源。我們退出伺服器的時候,就像是拿走了房卡,但是這個命令還是會繼續運行。而該命令運行過程中的輸出,默認會被寫入到當前文件夾下 這個文件裡面。

另外末尾的 AND符號的意思是,把命令放到後台去執行。也就是不要在命令行裡面輸出一大堆結果,並且佔用當前這個命令行窗口。使用這個 符號會強制在開始執行這一句命令之後,立馬把命令行的控制權返回到用戶手上,不管這個程序是否結束。下面是一些例子。

我們可以使用 這個命令來關停一些正在運行的工作。

另外一個終止工作的方法是終止那個進程。

4. 訪問並使用jupyter notebook

然後點擊工具欄裡面的「Cell -> Run All」。會看到下面的輸出。

然後我們可以回到代碼單元格,按下「Shift + 回車」,這個會運行當前單元格,並且在下面插入一個新的單元格。也可以使用「Insert -> Insert Cell Below」。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 生信技能樹 的精彩文章:

宏基因組學入門四部曲之初識
亞馬遜雲教程2:新建用戶,sudo許可權,安裝軟體

TAG:生信技能樹 |

您可能感興趣

雷神911最新的6代機重裝系統提示no bootable device.systemstop修改bios教程
Python 標準庫之 collections 使用教程
Docker教程:Docker Compose入門
國語Redshift for Houdini教程
Centos下安裝配置WordPress與nginx教程
Python 繪圖庫 Matplotlib 入門教程
Adobe Illustrator CS6安裝破解教程
eclipse中配置jdk+tomcat的圖文教程
Adobe illustrator 2018Mac版安裝教程
下載 | 最新教程《Artifical Neural Networks》
Mac效率神器Alfred系列教程-iTunes Mini Player
教程 | 一招教你使用 tf.keras 和 eager execution 解決複雜問題
Shopify乾貨!Shopify店鋪主題設置&Header配置教程
Spring Boot 基礎教程 ( 三 ) :使用 Cloud Studio 在線編寫、管理 Spring Boot 應用
Excel文本函數search和searchb教程
TensorFlow Probability 概率編程入門級實操教程
不打開文件獲取名稱。Excel VBA Application對象GetOpenFilename方法教程
Spring Boot 基礎教程 ( 二 ) :快速構建 Spring Boot/Cloud 工程
Python之Sklearn使用教程
蘋果手機cisco anyconnect設置教程