搭建python資料分析平台

來源:互聯網
上載者:User

標籤:python學習   大資料   jupyter   

基本結構


其實沒什麼高深的東西,無非是常用的那一套:

pandas, numpy, matplotlib…

但是為了更方便使用,加持了 jupyter notebook(即以前的ipython notebook)……

又為了更方便使用,前端加了nginx或apache反代……

雙為了更安全,加持了Let’s Encrypt的HTTPS(只是這台伺服器沒有80連接埠,原因你懂的,所以不能用我以前說的方法,這裡用了新方法)……

安裝環境


我在自己的FreeBSD或Debian伺服器上都是手工安裝所需要的包,但是這個方法並不適合不熟悉的人。

相比之下,Linux或Mac還算方便,但是在Windows下那簡直就是噩夢一般的存在——因為除了純python包以外,所有包含了非python依賴的包在Windows下安裝都是各種麻煩——畢竟Windows沒有內建編譯環境。

所以這裡說的是簡便方法:Anaconda

Anaconda是個好東西,搞python的人——特別是不愛折騰的人——必備的大殺器。它相當於打包了python的基本環境和常用的包,甚至還包括包管理器,有了Anaconda,在所有平台上都可以很方便地使用python了。

安裝非常簡單,直接從官網下載安裝程式運行即可。

注意,強烈推薦安裝python3的版本,畢竟python2已經out了。

初步使用


裝完Anaconda,python環境就已經可以用了——當然是命令列,或者再加上一個編輯器,IDLE那貨我覺得還不如VIM。想正經幹活當然應該裝個IDE,比如PyCharm,但是對於初學者或者非程式員來說,沒這個必要,還是notebook方便簡單。

早先這個是屬於ipython的一個部分,就是一個web版的ipython,後來ipython變成了jupyter,所以它也變成了jupyter notebook了。

jupyter notebook已經包含在最新版的Anaconda裡了,所以直接就可以用。

在本地使用notebook是非常簡單的,運行:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvcGhWdXlUVTFhZzJ3ZGtvVXo5RGNLbkhVaWE1bFlwUU9CWkI2TGFvQXFBYzBTbldvVW51bHllUS8wP3d4X2ZtdD1wbmc=" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

會啟動一個執行個體,並自動開啟一個瀏覽器頁面,之後就可以正常使用。

這樣用當然可以,但更好的方法是讓它跑在遠程伺服器上,再通過瀏覽器開啟。

最簡單的方法就是把8888連接埠開放出去,不過這樣不安全,並不推薦,所以還需要作一些配置。

配置jupyter notebook


相比ipython notebook,新的jupyter notebook使用配置方面比原來方便多了。

首先是建立設定檔:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvdkVqM1Q2SVY2UklsMzZmT0ZINk9SamZjWnBYZ0RLeEpYVmdSY0JIVGZmcWliRzBWTDV6YTl1QS8wP3d4X2ZtdD1wbmc=" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

然後就可以在 ~/.jupyter/ 下看到 jupyter_notebook_config.py 這個設定檔,其中有很多配置選項可以修改,但這裡不細說,有興趣的人自己去研究吧。

這裡只提一個:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvTWd5OXlUUWtaa2F6YW5UOVYyOVhVQ2pJSVZ5TGhnazEyb1hmTk53bmxxbVlvMUx3aWJvY0xKQS8wP3d4X2ZtdD1wbmc=" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

把這個改成False就不會自動開啟瀏覽器了。

但是手動開啟瀏覽器有個問題,就是需要輸入一個token才能登入使用,而這個token需要到啟動LOG去看,略麻煩。所以需要配置一個自己的登入密碼:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvRnY5Mks4Nk9PR0JpYWVJaWM0a015VGliOUdtZ3BKS2dxWVl2U0V2akZWaWJmbzR0WmVZUG1QaWFTc3cvMD93eF9mbXQ9cG5n" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

之後在命令列裡輸入要設定的密碼,之後會自動儲存到設定檔裡去,重啟jupyter notebook之後即可使用了。

反向 Proxy配置


因為jupyter notebook使用了websock,所以簡單配置反向 Proxy到連接埠8888是不行了。

Nginx配置如下:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvZ2R1djlvaWFtZ1JSSDNDalduN0VsNnBvRXZOSDluODZtZXVyRUxEWmlhaWE5bWljZWlhUHlZYnh0QWcvMD93eF9mbXQ9cG5n" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

Apache配置如下:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvaWE1VThmaWFIdTY5Wk42dGFnYU9pYmVoV1kyVjVCTUJGQmljZlFNOE9SdUo4cUpiU2Z1N095dUVtUS8wP3d4X2ZtdD1wbmc=" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

https配置


https配置之前的文章裡說過很多次,但是這次的要介紹的是不同的方法。

因為原來用acme-tiny有個問題就是需要http支援來實現網域名稱驗證,而我現在碰到的問題是沒有80連接埠可用,所以這個方法行不通。

但並不是沒有辦法,因為Let’s Encrypt除了支援http驗證以外,還有很多其它方式,比如DNS(但需要網域名稱服務 (DNS)商有API支援),還有這裡要說的:tls-sni方式,即僅https方式。

這是Let’s Encrypt官方用戶端支援的,所以需要先安裝(以nginx為例):

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvQnV4VVdUQ1gyZzJrT0tqaWF4ektpYmdCMXRCYUxXNG9nTEVpYnEzZTN3RnphbHJ2cVlJQUtuZGJ3LzA/d3hfZm10PXBuZw==" alt="d3hfZm10PXBuZw==" />

然後就可以建立認證了:

650) this.width=650;" src="http://image2.135editor.com/cache/remote/aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQYU05T1VOallwaWFiaWI0ZWlhMGVXN1VvZU9UNVF1U2M1OWFCMFRmMnpraWFMTmtyVXJNaWJDWVJ6QkhHanFnR1ZYZXNraEF4UUpYaWF3aWI3Zy8wP3d4X2ZtdD1wbmc=" alt="aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w" />

執行完就可以自動建立認證並儲存,同時還會修改相應的nginx設定檔,非常方便。

現在,可以通過 https://your.domain.name/ 訪問,輸入前面配置的密碼,即可登入並使用jupyter notebook。

猛禽

來源:http://blog.csdn.net/raptor/article/details/78035782

本文出自 “馬哥Linux培訓” 部落格,請務必保留此出處http://mageedu.blog.51cto.com/4265610/1967456

搭建python資料分析平台

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.