2015年10月17日 星期六

在Windows上安裝Python Pandas套件

安裝pandas套件真的是一波三折,請參考以下安裝說明
開始安裝pandas套件,在命令提示字元下執行,如果不知道指令如何下的朋友,請至 Winodws上安裝Python編輯軟體Jupyter與使用Jupyter 文章了解。
pip install pandas
結果出現了 " error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)." 錯誤訊息,字面上表示的是說未於vcvarsall.bat找到VC++ 2008版本的編譯器,心想我系統安裝VS2010,那會有VS2008的東西,於是上網Google尋找問題的解法,發現遇到這樣狀況的人不少。

主因:pabdas在python27環境下(筆者使用Python V2.7.2)在運行setup.py安裝時, 預設尋找visual studio 2008來編譯其中的C++檔。

網路上的解法,在命令提示字元下,依據系統安裝的Visual Studio版本來設定環境變數,如下:
VS2010
SET VS90COMNTOOLS=%VS100COMNTOOLS%
VS2012
SET VS90COMNTOOLS=%VS110COMNTOOLS%
VS2013
SET VS90COMNTOOLS=%VS120COMNTOOLS%
按照著上面設定環境變數後,原本想說應該可以安裝pandas了,執行安裝pandas指令後,出現如上相同錯誤訊息,後來使用暴力法,直接到 C:\Python27\Lib\distutils 目錄下找 msvc9compiler.py,強制修改msvc9compiler.py第243行的內容。
toolskey = "VS%0.f0COMNTOOLS" % version
改為
toolskey = "VS%100COMNTOOLS" % version
存檔後再一次執行安裝pandas套件指令,結果又是相同錯誤訊息。

於是這次去微軟官網下載 Microsoft Visual C++ Compiler for Python 2.7 來安裝。

第三次執行pandas安裝指令,結果卡了很久,心想乾脆強制停止安裝,上網找其他方法。

想說在三次安裝,結果都是令人心碎......心裡有一股開始想罵 "!@#$%^&*",但基於攻城獅 堅持、努力、想找解答的精神 (以上是屁話,看看就好),於是上網查安裝pandas前是否有需要安裝其他套件。

果然,安裝pandas前先安 numpy、six、pytz、dateutil 這四個套件,six系統就有安裝,所以只需確認其他三個套件是否存在。

確認後開始一步步地安裝numpy、dateutil、pytz這三個套件,皇天不負辛苦人,最後讓我終於攻下了pandas這座城池,成功安裝pandas套件。

上述安裝過程看似真的很麻煩,雖然成功安裝完成,不過後來筆者有重新再次過一次使用 Microsoft Visual C++ Compiler for Python 2.7 來安裝pandas套件,有安裝成功,只怪自己一開始不夠堅持。

補充說明使用 Microsoft Visual C++ Compiler for Python 2.7 安裝pandas套件的流程。
1. 下載安裝 Microsoft Visual C++ Compiler for Python 2.7
2. 設定環境變數。
SET VS90COMNTOOLS=%VS100COMNTOOLS%
3. 執行pandas安裝指令。
pip install pandas
按照上面三步驟,就可以成功安裝pandas套件。

PS:安裝 Microsoft Visual C++ Compiler for Python 2.7 後,在安裝pandas套件中,自動會安裝pytz、python-dateutil、numpy這三個套件,所以無需另外安裝。

套件說明:
NumPySciPy:提供用於創建多維對象、操作矩陣的數學工具。
Pandas:基於NumPy和SciPy提供高級的數據操作工具。
DateutilPytz:簡化日期和時區數據操作。

以上的介紹大家可以參考,群裡朋友說其實可以不用這麼麻煩,直接使用anaconda就可以完成這部分的安裝,後續有機會再分享anaconda內容。

請各位朋友不要跟筆者一樣用土法煉鋼的方式去裝pandas套件,能快速安裝完成使用(這是攻城獅的目標),畢竟時間就該花費在美好的事物上去學習,不一定要花時間去繞遠路。

參考資料