新手適用!python包安不上咋整?
本文要講的是如何在windows下順利安裝python包,以數據分析常用的scipy包為例。
首先我要說,pip大法好。但是有時候pip也會bug,這時候怎麼辦?
一款好的IDE可以解決這個問題。最開始我學python,使的是Enthought Canopy,對於新手來說,這是一款友好度極高的IDE。界面很像MATLAB,啟動界面還有個package manager供你手動搜索安裝拓展包,用Enthought Canopy安裝的包很少有失敗的,我也只遇到一次,後來發現是平台不兼容,該拓展包只有32位版本,但我用的Canopy是64位的,另安了一版32位的就解決了。除此之外,在我用Canopy的時候,安裝各種包都很省心。對一個剛接觸編程,連debug都不會的文科生來說,Canopy滿足了我所有需求。
但也正是因為Canopy沒有debug功能(免費版沒有),這款軟體使用的人並不多。本來我也傻傻的用著它,debug全靠print,但是直到我換了電腦,再次安裝的時候,我忽然就想看看還有沒有別的IDE可以用,在知乎上搜索一番後,我決定使用pycharm。
pycharm也很好用,也有手動安裝包的界面,但是不知道為什麼,以前隨隨便便就能安裝上的numpy和scipy,這次卻給我臉色看了,安裝老是報錯。可是sklearn和statsmodel都要先安裝scipy呀!這可咋整?
pycharm會報錯不意外,因為pycharm的搜索安裝包其實就是執行了pip install命令,而pip install+包的名字這個命令其實是去python官網上找到包然後安裝。如果這個出bug,就意味著python官網上的包不能安裝成功了。單純用pip install+包的名字是行不通了,那怎麼辦呢?我們先來看pycharm報的錯,no lapack/blas resources found,這是什麼鬼?百度一下,有人提到用superpack包,我從cdns上下載了scipy的superpack,原來是個exe程序,運行,yes!安上了!方便快捷!
然而好景不長,這時的我用的是32位python,但是32位有個內存限制,一旦使用內存超過2g就會報錯,坑爹呢這是!就我這渣代碼水平,代碼優化不足,經常爆內存,不行,我要換64位!
換了64位python,問題又來了,scipy的superpack包沒有64位的,太坑了!剛從上一個坑爬出來又掉進了這個坑,這可怎麼辦?再百度,有人提到了whl,原來在Python Extension Packages for Windows這個網址下,有一個非官方維護的python包網站,裡面的包都是whl文件,只要選擇和python版本、位數相同的whl文件並下載到本地,然後在cmd窗口cd到whl文件所在的路徑,用pip install whl文件全稱,就可以安裝好了。示例:
pip install scipy?0.19.0?cp27?cp27m?win_amd64.whl
酷!這樣就安裝好了。然而還是有個小小的bug,這個scipy需要numpy和mlk包同時安裝,沒關係,也在Python Extension Packages for Windows這個網站里就有,點擊頁面開頭索引處的numpy就可以找到numpy和mlk捆綁銷售的包,同樣用pip安就可以安裝成功了。
另外,安裝完scipy再安sklearn和statsmodel的時候可能會有缺Visual C++ Compiler 的報錯,而如果按圖索驥去微軟官網找下載,會發現那個下載打不開,去CDNS下載頻道搜,可以找到。
總結,安裝包可以在cmd窗口直接pip install,可以去官網上下載包並用pip安裝,可以用IDE手動搜索點擊安裝,可以下載superpack等exe文件自動安裝,可以下載whl文件並用pip安裝,最後一種方法最靠譜。
謹以此文獻給所有在windows下用python但是被安裝包bug折磨的痛不欲生的人們。(親測mac下啥bug都不會有)
推薦閱讀: