2014/5/16

在 PTVS 底下使用 IPython

PTVS 指的就是微軟 Visual Studio 底下的Python開發環境,只是微軟喜歡再搞個簡寫,證明他們為了這個東西有弄出一個專案;

而IPython是Python底下一個很出的 IDE ,後來上網查原來 REPL 是有特殊意義在的 ,維基的說明如下

「讀取-求值-輸出」循環英語Read-Eval-Print Loop,簡稱REPL)是一個簡單的,互動式的編程環境。這個詞常常用於指代一個Lisp的互動式開發環境,但也能指代命令行的模式和例如 APL, BASIC, Clojure, F#, Haskell, J, Julia, Perl, PHP, Prolog, Python, R, Ruby,Scala, Smalltalk, Standard ML, Tcl, Javascript 這樣的程式語言所擁有的類似的編程環境。這也被稱做互動式頂層構件(interactive toplevel)

而在 PTVS 使用 IPython 其實也蠻簡單的,只要看底下這篇文章就可以

Using the IPython REPL with PTVS

但我還是將個人心得說明如下

在 Visual Studio 2013 中,你可以裝好幾個 Python 的編譯器,例如像我就裝了:

image

其實我不是要展現我個人任重道遠,而是常常會發生一些奇怪的狀況最終就變成了這種情形;

我來說一下我目前主要的心得,我不知道微軟用了什麼機制去區分 Python 32 bit 與 64 bit版本,因為就我個人的狀況是2套都有裝,而在套件上,有些套件是 32bit 有些又是64bit ,所以如果你是用32 bit的Python 但是配上 64 bit的套件光是在 import 階段就會出現問題….

但是好在 Visual Studio 可以隨時切換你要的編譯器,因為我把 IPython 要安裝的套件下載成 64bit 但是安裝在 32 bit 的Python 資料夾中,但是只要我選擇 64 bit 的Python 編譯器就不會出現問題….

另外在 Using the IPython REPL with PTVS 的連結中,有建議直接下載 SicPy 編譯好的 exe 套件,就直接依他的指令下載回來安裝吧;因為Python的套件,很多都有相依性,就好像你要去參加婚禮一樣,要穿的服裝都要照一件的規定來….而這種編譯好的套件,就好像直接像禮服公司拿衣服,減少了很多相依性上的麻煩

最終安裝好了,再記得到 Visual Studio 中將互動介面改為 Ipython這樣子就比原先純文字型的互動模式更加棒了

另外這個套件中,有提供在互動介面中就直接輸出圖形的能力

image

我覺得這真的是很棒的功能

可以多試試看,畢竟 Python 在科學運算上因為資料結構可以實作很多在 R 中不容易實現的功能,可以多加利用一下

另外 IPython 另一個重要的功能就是可以轉成網頁編寫 Python 的平台(即為:IPython Notebook),我只能說因為少了微軟的加持再加上還有眾多網路系統設定要調整,我決定等到以後買了 Mac 與工作中確實有此需求才會進行實作…

Python 的 BeautifulSoup4 在Visual Studio 2013異常處理方式??

先說結論:

不要理它,但是要確實的告訴 visulal studio 2013 不要理它

如下,在例外狀況將 python 的選項給取消…

image

 

 

開始說故事時間囉:

在資料蒐集階段中,我們常會借助 Python 來進行網頁資料系統性的取得

因為 Python 有提供蠻多這類相關的套件

只要在google 上面打入 “web scraping” python 等相關字樣就會出現很多的結果;BeautifulSoup 算是其中蠻出名的一套,雖然後續有後起之秀

不過這套最大的好處是容易安裝,我有測試過另外一套,因為相依的套件太多了,所以一直無法安裝成功,但這一套就簡單多了

我想為了後續 open source 體系的編程學程之路,6月後就會開始進行新一輪的mac book 物色了… 因為很多 open source 的東西都是基於 linux 系統,移植到windows的時候總是會漏東漏西的,否則就是相依性的問題一直搞不太起來

像是 BeautifulSoup 我在Visual Studio 2013的環境中執行程式碼時就會一直報錯,後來是找到這一篇

Can't import bs4

image

嗯,說穿了就是一個一直解不掉的Bug … 因為其他的套件就不會有這樣的情形….

好吧,至少這個狀況是能被處理的

在此做個紀錄

另外其實還在微軟體系下的朋友,visual studio 2013提供的程式環境是真的還不錯用…可以到 http://pytools.codeplex.com/ 下載最新版本進行安裝

它提供了不同版號的 visaul studio 的安裝檔

2014/5/1

Visual Studio搭配Azure發行網站

我很喜歡Azure的一點就是,他簡化了很多學習網站架設的功夫

如果是之前的話,你要架設 .Net 架構的網站,要花蠻多功夫的,而我個人又不太喜歡為了一個小專案還在那邊安裝 SQL Server 管理工具…

現在Visula Studio 2013可以很方便的和Azure相結合;我紀錄一下我自己的心得

(1)新增Web Forms專案 -- 可以看到已經與 Azure 做了整合

image

(2)在Visual Studio中設定資料庫連結

image

在Azure中的概念,是同一個使用者擁有一個相同的資料庫伺服器

而你每建一個新的網頁服務就可以同時指定一個新的資料庫,簡單的說在Azure中的階層觀念大概是這樣

資料 >> 資料表 >> 資料庫 >> 資料伺服器;雲端的好處就是微軟負責將資料伺服器的正常營運,我們只需要著重在資料報表如何呈現的邏輯即可。

另外要注意的就是,由本機端的資料庫轉換成可以匯入Azure資料庫不能直接轉換,還需要透過 SQL Azure Migration Wizard 進行移轉…

(3)依照正常的開發流程,就可以 建置 → 發行網站

我採用的是懶人法,其實微軟有提供多樣化更新網站的方式;如果你願意的話,也可以採用最傳統的 ftp 上傳方式

image

這裡記得要設定資料庫連結,Visual studio還沒有聰明知道要指向那一個(因為我連線的是遠端資料庫)

image

網頁程式的開發,我覺得對於資料科學是相當重要的一環。因為你的分析演算法再如何的漂亮,最後還是需要呈現讓其他人能夠理解你說的故事是什麼?而網頁就算是一種最通用的呈現方式 (另一種方式則為 Excel 試算表)