Friday, January 4, 2013

備忘:在 Mac OS 環境安裝 Python 開發工具

昨晚一時心血來潮,整理筆電硬碟之後 ,順手安裝了 Python 開發環境,花了大半夜,解決掉幾個莫名所以的大小蟲子,為了備忘,把解決方案記錄於後:
  1. 安裝適合 Mac OS 版本的 XCode
  2. XCode 的 Preference Panel 裏面選擇安裝 command line tools,Mac OS 10.8 搭配的 C 編譯器是 llvm gcc 4.2.1
  3. Python 官網下載並安裝新版的 Python (目前官網的最新版是 2.7.10 和 3.4.3。,檢查時間是 2015/06/22 ) 以及搭配 OS 與 Python 版本的 Tcl/Tk
  4. 以 easy_install 指令安裝 pip
  5. 到 Python 官網的 virtualenv 頁面下載 virtualenv.py(在此按右鍵另存新檔),或是以 pip 指令安裝 virtualenv
    • Mac OS 10.8 已經預安裝 Python 2.7,直接執行 virtualenv ENV,就會在先行目錄下建立一個名爲 ENV 的子目錄,進入這個目錄,執行 source bin/activate,就可以啓動一個新的 Python 虛擬開發環境
    • 如果要建立 python3 的虛擬開發環境,使用指令 virtualenv --python=python3.3 ENV 或是 python3 ~/.virtualenv.py --distribute ENV
  6. 接著安裝 numpy/scipy,要安裝這兩個套件,必須先安裝 gcc 和 gfortran,才能編譯下載的程式碼。
    • 若是嫌編譯太麻煩,可以考慮這個非官方版本,先下載腳本 install_superpack.sh ,然後在命令列環境執行腳本 sh ./install_superpack.sh,這個腳本將配合 Python 2.7 的 numpy、scipy 、matplotlib 及 PyMC 等編譯好的模組下載回來,放在該放的位置。
    • 若要編譯程式,先要搞定 gfortran。XCode 的命令列工具不包含 gfortran, Mac OS 10.8 環境裏面,下載這個檔案,安裝後需檢查 /usr/bin/gfortran 是否存在,若不存在,執行 sudo ln -s /usr/bin/gfortran-4.2 /usr/bin/gfortran。
    • scipy 安裝指示建議不要使用 XCode 的 llvm gcc ,建議另外安裝 gcc 4.2。 而且在安裝之前記得調整環境變數:
      • export CC=gcc-4.2
      • export CXX=g++-4.2
      • export FFLAGS=-ff2c
    • 安裝好 gcc/gfortran 之後,可以用 pip install numpy 方式安裝套件,或是如scipy 安裝指示,以 git 下載源碼( git clone https://github.com/numpy/numpy.git or git clone https://github.com/scipy/scipy.git),編譯安裝,安裝指令如下:
      • python setup.py build
      • sudo python setup.py install
    • 安裝 matplotlib 之前,必須先安裝 freetypelibpng,這兩個元件,可以用MacPorts安裝,編譯前建議更改環境變數 export ARCHFLAGS='-arch x86_64' 。
    • matplotlib 穩定版的源碼不支援 Python3,若要在 Python3 環境裏使用 matplotlib ,需用 git 下載最新的開發者版本源碼 git clone https://github.com/matplotlib/matplotlib。
    • 目前使用 virtualenv 建立了兩個開發環境,一個是 Python 2.7,另外一個是 Python 3.3。雖然 numpy/scipy/matplotlib 安裝好之後,執行 matplotlib 網站的範例,並不是每個都能成功,原因不明。

(最後,更新 MacVim,並且改用 vgod 分享設定檔)

參考資料:

No comments:

Post a Comment

如果我的心是一朵蓮花

~ 林徽因 · 馬雁散文集 · 蓮燈 ~ 馬雁 在她的散文《高貴一種,有詩為證》裡,提到「十多年前,還不知道林女士的八卦及成就前,在期刊上讀到別人引用的《蓮燈》」 覺得非常喜歡,比之卞之琳、徐志摩,別說是毫不遜色,簡直是勝出一籌。前面的韻腳和平仄的處理顯然高於戴...