- 當自己學習到新的檢驗方法時,並加入excel後,要逐一調整舊有已存excel設定,無法修正後就應用到先前所儲存的公司分析檔案,如要一一更新其實滿辛苦的
- excel的分享有時候會跟用戶的環境有關,有時候會需要花時間告知對方,沒有像網頁如此般的方便
- 無法達到自動化驗證功能,這功能在目前個大網站上又沒有類似的,或者是需要額外加入會員收費的。例如我想要找出3個月的營收平均數剛好突破12個月營收平均數的公司,這類資訊我無法透過excel一家家公司來計算(那會瘋掉)
以上第三個問題是我最想要改善的,因為台灣雖小但2千多間公司要一家家看,那真的實在太沒有效率了,因此我想要將這部分的功能自動化。初期的目標是能夠先將資料抓下來,然後計算財務報表相關數字,並將自己選股的概念部份實作來;長期目標是能夠將分析的作業透過big data技術運算,並透過網站的方式跟大家分享。
哈哈,短期目標定下來了,因此我就將MAC安裝VM來進行實驗,而今天要跟大家分享的就是環境安裝及設定的過程拉。這些程序大致分成:
- Centos 7安裝(version 7.2.1511)
- python安裝(version 3.5.2)
- vim安裝及設定(version 8.0.16)
python是程式語言,可以跨平台且是一個簡潔有效率的語言,而我會選擇他主要是因為未來big data這邊有許多模組也都支援python。而vi是linux系統中內建的文字編輯器,vim就是他的加強版,而vim的官方網站也認為他是很棒的程式語言編輯器,因為他有許多plugin可以進行編輯時的加強作業,基本的包含了關鍵字識別,auto completion ,還有debug及語法檢查功能。好吧~這就是我的基本作業組成,請繼續往下看^_^
[CentOS 7安裝]
環境上是在MAC,因此我希望透過vm的方式來進行測試驗證,可以跑的vm包含了,virtualBox,vmware fusio,parallel三套,只有virtualBox不用錢,因此首選就是它了。至於要選用的作業系統,其實ubuntu或centos都可以。我自己是首選ubuntu,但很難過的是他在安裝的過程中竟然一直在VM環境上裝不起來,而centos7是可以一次到位的。網路上描述透過virturlbox安裝作業系統的文章許多,小弟就將自己參考的Link分享出來。
- 透過virtualbox安裝,過程中有兩個關於網路設定的注意事項是:
- 在網路與主機設定的功能上,請要點選"開啟",不然預設安裝完畢後是不會開啟網路的。你就必須要透過cmd的方式來開啟,如果你不小心沒有開啟網路,請你參考 [這裡] 來手動開啟網路。
- 預設vitualbox上的網路是使用NAT設定,如果你的host os是可以上網的話,vm內的的作業系統就可以上網。但,在virtualBox的終端不是很好操作,包含貼上複製及操作上很不順手,因此我建議直接使用其他的ssh工具,例如putty或者Mac上的終端機登入到guest os進行作業。 因此你在virtual上的網路設定建議使用bridge(橋接介面卡,如下圖),這樣可以方便的連線了。在使用橋接模式後guest OS起來後會得到一個與host os同網段的IP,因此只要知道guest OS的IP後就可連線囉。不過,我發現只要每次到不同的環境時,我的Guest OS與Host OS都會拿到不同的IP網段,因此我每次都必須要再確認一次IP網段才有辦法連線。小弟有另外一個取得固定IP的方法,請參考[如何解決移動裝置上的virtualBox與Centos網路規劃設定]文章。
- centOS 7的iso檔案請按 [這裡] 下載,建議使用DVD iso(大約4G)。小弟手賤選擇了minimal iso(不到700MB),然後自己要透過手動yum來安裝自己需要的軟體。不過minimal雖然基本,但是裡面的vim已經是7.4.16版本,而Python也已經是2.7.5的版本了。
我想在OS上面的安裝應該不會有什麼大問題,但建議大家在安裝後也使用virtualBox的快照功能新存起來一份,然後再進行後續的系統異動,並且每次設定後如果測試OK的話,也請記得快照起來喔,這樣你可以在安裝軟體時不用擔心系統亂七八糟>_<。只要自己想要返回先前的系統的話,都可以先將guest os關機後,再透過virtualBox的快照功能恢復喔。
[python 3安裝]
啊~不是有python2.7.5了?為什麼還要裝python3? Python是一個很特別的語言,當時出了3的版本以後,竟然來一個"不"向下相容,這是我第一次看到的事情,也代表作者的理念,你可以google一下大致就知道了,請看 [這裡]。我認為python是一個好語言,我喜愛他的語法,因此打算直接使用最新的版本,因此就直接使用3.5.X版本。
進入作業系統後打入python,可以得到系統的python資訊。如下:
=====================================
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
=====================================
基本就可以知道CentOS 7已經內建了python2.7版本,但python3呢?很抱歉再minimal ISO上面是沒有內建的,必須自己手動安裝。因此我找尋了一下網路安裝python的文章,請看 [這裡] ,這篇文章描述了安種安裝python3的方法,我看了一下,覺得2~3的方法比較簡單,因為不用自己編譯(第一種方法),因此直覺就使用第2方法(Install Python3 from EPEL Repository),基本的指令如下:
- sudo yum install epel-release
- sudo yum install python34
- curl -O https://bootstrap.pypa.io/get-pip.py
- sudo /usr/bin/python3.4 get-pip.py
以上這四個指令都可以正常運作,也可將python3安裝到centos上,一點問題也沒有。但,我在vim的整合上卻發現問題,使用centOS內建的vim 7.4.16版本時,他並不支援python2及python3,至於檢查的方法可以輸入vim --version,他會告訴你他有支援哪些語言。你可以發現預設的vim並不支援Python,包含2~3都沒有,圖中的-python3代表不支援python3。#__@,哭哭。那我的vim整合Python要怎麼辦啊?
好吧,那我自己重新安裝vim總可以吧?因此依照官方網站的安裝方法,請看 [這裡] 執行以下指令(這些指令執行後取得最新版本8.0):
- git clone https://github.com/vim/vim.git
- cd vim/src
- make
- make install
哈哈~悲慘的事情還是持續著,因為vim還是無法認識python?!
就這樣子小弟一直安裝,一直測試終於搞定了!基本上的程序是這樣的,需要先安裝python後在安裝vim,這樣vim才可以認識python>_<,而且建議都是使用make install的方式執行,只不過官方的文件都以最簡單的設定來安裝,因此忽略了許多個人化的設定。小弟將最後成功的指令提供如下:
- sudo yum install yum-utils
- sudo yum-builddep python
- curl -O https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
- tar xf Python-3.5.2.tar.xz
- cp Python-3.5.2
- ./configure --enable-shared
- make
- make install
以上的第6步驟的參數非常重要,一定要加上enable-shared,因為這樣建出來的library才可以讓其他的應用程式參考執行!小弟一開始建立的時候都沒有輸入此參數,在安裝完python後可以透過python --version來確認版本且執行,而且在vim的configure階段也可以看到他認出python3,以為已經OK了,沒有到在後續vim整合設定的時候還是出錯。因此請記得一定要加入--enable-shared喔。
基本上如果你沒有加入此參數並進行安裝的話,在/usr/local/lib下看到的檔案會是libpython3.5m.a.1.0,而非libpython3.5m.so.1.0。因此你可以自己檢查一下喔。
但,以上的步驟安裝完後你執行python3的時候,會出現以下的錯誤。
================================================
$ python3
python3: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
================================================
你可以輸入以下command來檢查python3的library連接情況,你可以發現系統無法找到libpython3.5m.so.1.0這個檔案。
================================================
$ ldd /usr/local/bin/python3
linux-vdso.so.1 => (0x00007ffdfe367000)
libpython3.5m.so.1.0 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcbf15cb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcbf13c7000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fcbf11c4000)
libm.so.6 => /lib64/libm.so.6 (0x00007fcbf0ec1000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcbf0aff000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcbf17f1000)
================================================
這個問題主要是因為系統不會去usr/loccal/lib目錄下找尋檔案,因此你可透過以下的指令來設定,最簡單是直接在bash下執行export LD_LIBRARY_PATH=/usr/local/lib,然後你的python3就可以執行了,但這樣的問題是你每次重新登入後都會發生問題,因此建議你將此指令加入到/etc/bashrc檔案中,這樣不管是哪個用戶都可以享用這個福利拉。
以上說明到這裡已經完成了python3的安裝,那python2怎麼辦?可以這樣重新安裝2嗎?小第想說一不做二不休,就給他依樣畫葫蘆完成了python2.7.12版本安裝了,在vim的整合上一點問題也沒有。但,另一個災難發生了,因為CentOS的軟體安裝套件yum是使用python寫的,而且是基本是設定依存2.7.5版本,而我手賤更新後,yum就無法執行了。情況如下:
================================================
$ yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.12 (default, Sep 27 2016, 00:25:08)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
================================================
以上這個問題雖然網路上有些解法,但我這邊試不出來,因此只好GG放棄了,也就是說我的系統中依然使用預設的2.7.6版本,因此在後續的vim設定中,只專注在python3上的整合。
[vim 8安裝]
哇~~好棒棒,終於進展到最後一個vim的步驟了,基本上依照官方做法是一定會失敗的,因此請你依據以下的方法來安裝。
如果你先前已經有安裝vim的話,請你進入下載的vim目錄,並輸入rm src/auto/config.cache,將先前的設定暫存檔案清除,然後再執行以下的步驟喔。
- git clone https://github.com/vim/vim.git
- cd vim
- ./configure --prefix=/usr/local --enable-multibyte --enable-python3interp --with-features=huge
- make
- make install
基本上再第三個步驟的時候你應該要可以看到以下的文字,代表vim認得python3的相關資訊,並且會支援他喔,如下圖
完成以動作後,你可以進入vim然後執行:python3 import sys; print(sys.version)指令,你應該可以看到以下的內容,那就真是恭喜你完成了相關設定。
3.5.2 (default, Sep 27 2016, 09:15:11)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]




沒有留言:
張貼留言