2015/10/8

Python 環境切換與管理[簡易版]

Python 環境切換與管理[簡易版]

Python 目前比較麻煩的是有 Python 2 / Python 3 的版本,然後 Mac 也有自帶的Python, 初學者往往在一開始時容易困擾…
例如:pip install 套件後,到底是安裝到那一個 python 環境呢? pip3 ?? pip ??

解決方式:

  • (1)使用 Pyenv 完全隔開不同的 Python
    • 例如:隔開之後再安裝不同版本的 Anacnoda(預設安裝很多的python套件)
    • 因為是完全分開的,所以依據你所使用的環境進行 pip install 套件安裝,不會與原先系統預設的python環境對衝
    • Anacnoda 官網介紹說 Anacnoda 已經具備有套件與環境管理機能,但依照我自己的使用經驗,建議還是先裝 pyenv 來把環境完全切割比較好…

  • (2)使用 Docker image
    • 例如:我目前使用這組 Docker image; https://hub.docker.com/r/jupyter/datascience-notebook/
    • 好處是已經有了 python 2、python 3、R 的Jupyter 
    • Python 套件安裝
      • 此 Docker 預設的Python環境是 Python3 ,所以如果是 pip install 套件,則會安裝套件至 Python3
    • 若要安裝 Python2套件呢?
      • 首先要知道 docker 中有多少python環境
      • conda env list → 可得知安裝 python2 的環境叫 python2
      • 選擇 python2 環境: source activate python2
      • 再次使用 conda env list 確認目前的環境
      • 使用 pip install 套件。例如: pip install beautifulsoup4
      • 安裝後新的套件後(安裝至 python2中),記得下 docker commit 指令把容器的狀態給存起來
  • 備註
    • 因為 docker 本來就是虛擬化工具,docker中發生了什麼事情對於主系統都不會有什麼影響,所以docker中就沒有必要再安裝 pyenv;當然這是用空間(SSD/HD)來換取煩雜的設定時間損失。

備註:

conda常用指令:
  • (1)目前作用中的環境安裝了多少python套件 conda list ;
也支援這樣的語法 conda list baut* ,則列出:
beautifulsoup4 4.4.1
  • (2)切換環境
source activate python2
  • (3)目前有那些python環境
conda evn list
參考資料: http://conda.pydata.org/docs/_downloads/conda-pip-virtualenv-translator.html

2015/10/7

RCurl 設定 SSL 驗證 [R]


例如:

library(RCurl)
getURL("https://www.python.org"  )

會得到
* Error in function (type, msg, asError = TRUE) : error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none

調整為:

library(RCurl)
getURL("https://www.python.org" ,   ssl.verifypeer = FALSE)

則可取回 Html 文件

2015/10/3

Power BI 利用 ODBC 連接 sqlite

Power BI 利用 ODBC 連接 sqlite
  • Power BI 是微軟力推的商業智慧軟體,目前強調在與 excel 高度的整合性;所以被微軟內部視為重要的戰略武器,幾乎每個月都有更新功能… 目前使用限定在 windows 平台,但可以用私人網域郵件申請帳號,就可以將 Power BI的內容以 HTML5 網頁方式呈現
  • 但是…
  • 其實實務上在資料蒐集的階段,目前 windows 平台不是一個好選擇… 往往我們是在 linux 的 docker 環境中將資料以最簡單的 sqlite 方式予以儲存
  • 所以將sqlite的檔案移轉至 windows 平台後利用 ODBC 方式取存是最簡單的

step:

備註 :

  • 如果你有用過 Excel 舊版中連接資料庫中取得 ODBC 或是 SQL SERVER 就會被目前 Power BI 純工程師介面給嚇到… 突然要你輸入一長串的連線字串,完全沒有提示… 還好 google 找得到
  • 如果不用 ODBC, 使用將 sqlite 匯出成 csv 後 → 匯入 Power BI,會有utf8處理中文的問題…
    • 目前 Power BI 似乎暫無解決 utf8 csv 的手段
    • Excel也有一樣的問題,但可用匯入文字檔的方式才能解決
    • sqlite → 轉存 csv → 轉存成 excel 就能解決,但有點複雜

總之利用 ODBC 方式算是 windows 底下處理 sqlite 最簡單的方式!

利用 docker 協助程式學習

作業模式/情境
  • 出門帶著 Mac + Docker化隨身碟,確保作業環境為純 linux 開發環境
  • 在家使用 PC桌機(16GB) + Docker化隨身碟,確保作業環境為純 linux 開發環境
  • 有些在 mac 上極難安裝的程式在 Ubuntu 上的 Docker 異常簡單
  • Mac / Windows 雖然都有 Docker Tools 但很難用,還不如直接用虛擬機 Ubuntu設定
  • 目前學習 Docker 是為了學習程式開發,暫不學習更進階的議題
  • 使用網路爬蟲捉資料時用 PC 桌機上的 linux 的Docker R來進行資料的取得
  • 節省 docker 若安裝 mac上 的 SSD空間浪費
  • Docker Hub上有各式神人提供的設定好的Dockerfile

step:

  • 購置一個市面上販售最快的 64GB 隨身碟(不用1000元)
  • 將其格式化為 exFAT
    • Mac / Windows / Linux 都可以讀寫
  • 在 Mac / Windows 都安裝上 virtual box
  • 將 Mac / Windows virtual box 預設的資料夾指向隨身碟
  • 下載各式的 Linux Based VM並安裝
    • Ubuntu 15 Server
    • Ubuntu 14 Server
    • Ubuntu 14 Desktop
    • Ubuntu + GIS
    • 帳號與密碼儘量單一化,因為都是為了學習而非實際生產環境

  • 以隨身碟中VM: Ubuntu Server 15為主,進行各項設定
    • 安裝 vsftp 以利資料交換
    • 安裝 docker
      • 安裝 docker 化軟體
      • 例如:Jupyter Notebook,以利學習 R / Python / Spark
      • 依情境將 virtual box 中的網路設定 port forward

Ubuntu 15 設定 vsftp

主要參考這篇 http://www.liquidweb.com/kb/how-to-install-and-configure-vsftpd-on-ubuntu-15-04/

安裝 vsftp
  • apt-get update
  • apt-get -y install vsftpd
修改設定檔 vim /etc/vsftpd.conf
  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • chrootlocaluser=YES
  • 設定檔中的localumask=002 直接改成localumask=775 才能上檔目錄、檔案
備忘
  • 使用 filezilla 連線時,記得要選 sftp 協定
  • ubuntu 15預設重啟 vsftp 指定修改為: service vsftpd restart,有些教學網頁上的資料是舊的,不適用於 ubuntu15
用途/情境
  • 在VM ubuntu 中使用 docker run -v 時設定好共享資料夾,將資料用 ftp 方式回傳至本機
  • 因為只有本機有存取的需求,所以不需要設定太繁雜的安全性設定,所以上述直接將 local_umask=775