在 Linux 下安裝基於 Python 的機器學習編程環境
試用了一下 EPD 的Canopy,感覺不錯。Anaconda由於不知名的原因,在我的筆記本上裝成功了,但是沒有運行起來,可能是QT的原因吧。Anyway,到現在,我都不推薦了。還是堅持原來的方法,因為安裝套裝之後,安裝額外的包會更麻煩。比如Canopy,雖然學術許可不要錢,而且包括了EPD提供的所有的包,但是還是有其他的包不在EPD的庫裡面,而且EPD庫中的有些包不夠新,用起來都存在問題。
折騰後的推薦:自己動手裝,然後用 PyCharm 做編輯器。
------------------再更新分割線------------------------
經肖楠的提示,可以安裝Anaconda。之前在 Windows 上試過這個東西,不過由於先入為主的原因,一直在 Windows 上都在用pythonxy,嘗試過 Anaconda,不過由於在 Windwos 裡面的界面實在醜陋,就算了。而且擔心是否能升級 package 等問題,不過看了Anaconda 的文檔之後,這些疑慮都打消了,就不用使用下面這樣費勁的方式了。
推薦Anaconda。
P.S. 昨天看兩個研究生在那折騰,看到程序編譯的過程,自己把 package 安裝成功,的確不錯。各有利弊吧,自己按需選擇就好。我覺得第一次,自己從頭安裝一遍,對自己有好處,之後就沒必要費事了,用套裝就好。
--------------更新分割線-------------
今天恰好讓碩士生在 Linux 下跑一下 LDA 的源程序,就想著倒不如直接安裝編程環境,讓他們往 Linux 方向過渡。中間遇到了不少困難,在這記錄一下。
Linux 發行版是基於 Ubuntu12.04 LTS 的 Elementary OS - Luna,為什麼呢?因為漂亮!而且沒有了 Ubuntu 現在用的那套非常不好看,而且死佔資源且難用的桌面環境!同時基於 Ubuntu,還保留了易用的特性。
- 源和 Python package 的問題。由於學校支持 IPv6,所以可以用支持 IPv6的源,速度非常快。但是由於有些 Python package 沒有進入到 Ubuntu 的軟體倉庫中,另外,Ubuntu 軟體倉庫中的版本都比較低。在 Ubuntu 上我也不知道有沒有和 homebrew 一樣好用的東西(剛才查了一下,有linuxbrew,以後可以試一下)。所以源最好設置成能同時支持 IPv4和 IPv6的源,如果不行的話,就設置成只支持 IPv6的源就好了,因為用 IPv4僅僅是用來安裝 Python 的包,不用到軟體倉庫中的內容。當然,如果你的環境不像我學校上網這麼費勁,也不用扯這些了。
- build-essential。這個是用來編譯 Python 包的,因為 Python 是用 C 寫的嘛,所以會用到 build essential 中的 g++編譯器。(寫到這裡,真的要吐槽一下,現在國內的本科計算機教育教 Linux 的太少了!全被微軟慣壞了!)
- Python。一定要裝 Python2,而不是3,因為現在還有些包不支持3呢,犯不著跟自己較勁。Linux 發行版都默認帶 Python 的,所以也不用自己裝一遍了。但是,這裡最好建議裝 Python-dev,因為裝 scipy 的時候好像是用到了。因為Python 和 Python-dev 就在軟體倉庫裡面,裝一下很方便。至於2.7.x 的版本問題,甚至2.x 的問題,我覺得都不是大問題,因為現在基本上都是2.7起跳了,第三位的版本差別不影響什麼。
- setuptool。也就是 pip,這個在軟體倉庫裡面直接 sudo apt-get 就好了。
- virtualenv 和 virtualenvwrapper。誰用誰知道!!!而且像 Linux 和 Mac 這種 Python 直接集成在系統中的情況,萬一保不齊哪天你把 Python 搞壞了,弄不好就要重裝系統。virtualenv 可以獨立出一個個獨立封閉的開發環境,virtualenvwrapper 可以使環境切換更容易些,那就裝吧。不過不建議裝軟體倉庫中的版本,比較老。直接用 pip 裝。
- 准本工作。在安裝 numpy 和 scipy 之前,用 sudo apt-get build-dep python-numpy, python-scipy, matplotlib 把這些需要安裝的包的依賴先裝好,要不然後續用 pip 安裝的時候可能會因為許可權和依賴問題編譯不成功。
- 三件套!pip install -U numpy; pip install -U scipy; pip install -U matplotlib。這樣可以從以前軟體倉庫中安裝的升級(如果有的話)安裝最新版本。
- 其他的,比如 nltk 啊,gensim 啊,ipython 啊,都可以用 pip 直接安裝了.
推薦閱讀:
※相比於 Django、Pylon 等 Python 框架,Ruby on Rails 是否有很大的技術優勢?
※linux下pip模塊安裝路徑?
※Python3.6中sequence的 +=與 extend()有何區別?後者可以在tuple中使用?
TAG:Python |