由淺入深學python(一)

黃思喆發表於2015-05-12

由淺入深學python(一)

python是一門簡約不簡單的程式語言。它和java同屬解釋型語言,先將原始碼編譯成字元碼, 而後交給自帶的虛擬機器pvm解釋執行。它的語法簡介優雅,原始碼可讀性極高,命名得當甚至可以不寫註釋也看得懂, 程式碼可維護性好。python是種很中庸全能的指令碼語言。從系統工具到web應用,從命令列指令碼到Gui, 各個領域都可以勝任。常見的應用領域主要集中在伺服器維護,web應用,以及科學研究領域。 google,豆瓣,知乎,python都是主力開發語言。許多遊戲的後臺指令碼也是python。 而在資料分析領域python也非常受歡迎,由於python有強大的numpy模組以及在字串, html和xml文字處理方面的強大能力,近來其受歡迎程度甚至有超越R語言及matlab的趨勢。

目錄

前置工作

本篇將記錄基本的環境搭建,pip包管理工具,虛擬環境工具,文字編輯器和互動命令列工具。

版本選擇和環境搭建

python版本非常多,除了官方的python2,python3外還有pypy,以及jpython等基於其他語言的python 直譯器,他們之間往往相互不完全相容。新手最糾結的就是選哪個版本開始學習了。一般而言python2.7 有最好的第三方package相容性,python3有更優秀的語言特性,比如最直觀的語言層面utf-8編碼支援; 而pypy是python的未來,它擁有更好的執行效率和對多執行緒支援。

那麼究竟到底選哪個學呢?

我個人覺得學習的話應該先學python2.7,這個版本基本不會有大變化了,而3.X還在繼續更新。 這個版本學的七七八八了python3自然也不會問題。

我想全都安裝上想用哪個就用哪個可以麼?

當然可以,雖然python不像ruby有官方版本管理器rvm,但人民群眾的力量是偉大的!linux和mac下可以安裝一個 叫pyenv的神奇shell工具,這是個非常方便的python版本管理器。windows下也有個類似的,叫pywin, 也是命令列工具,可以用pip install pywin安裝我沒跑windows的電腦就不寫具體的了,地址 https://github.com/davidmarble/pywin

注意: 我的系統是macosx,我只測試了pyenv可以在mac上通過homebrew安裝並可以執行,git方法並沒有測試。

pyenv介紹

pyenv的安裝

這是pyenv的github地址https://github.com/yyuu/pyenv可以跟著裡面的指導操作,為了照顧英文捉雞的同學我講個大概

mac--通過homeberry安裝

  $ brew update
  $ brew install pyenv

安裝完後

  $cd ~
  $echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> .bash_profile
  $source .bash_profile

這樣就算配置好了,試試能不能用~

  $pyenv

看看是不是輸出了他的幫助,如果是的話就安裝好了~

更新

如果要更新,可以執行brew upgrade pyenv來更新

linux--通過git安裝

  $ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

更新

  $ pyenv update

解除安裝

  $ rm -fr ~/.pyenv

pyenv的使用

檢視可安裝的版本

   $pyenv install --list

安裝指定版本

   $pyenv install pythonVersion

選擇上一步中輸出的一個版本安裝,純數字的是官方版本,其他有的是整合包有的是其他平臺的直譯器。 推薦搞資料分析的安裝anaconda-X這是個科學計算工具包,自帶ipython notebook,很好用。 就是有點大,可以在http://repo.continuum.io/archive/下載好了後放在~/.pyenv/cache下再執行安裝。 記得下載.sh副檔名的檔案。

更新資料庫

   $pyenv rehash

安裝或者解除安裝了模組或python版本後應當執行資料庫更新。

檢視安裝了的版本

   $pyenv versions

其中system指系統之前的預設版本,前面有*的說明是正在使用的版本。

設定使用python的版本

   $pyenv global pythonVersion   #設定全域性python版本
   $pyenv shell pythonVersion   #設定本次shell中臨時執行的python版本
   $pyenv local pythonVersion   #設定本次電腦啟動時臨時執行的python版本

解除安裝python版本

   $pyenv uninstall pythonVersion

為啥非要用命令列工具呢?

一方面是個人習慣,一方面命令列不用在檔案系統裡各種找可執行程式,記住幾個單詞就可以工作了。

模組安裝工具pip

pip是python的官方第三方包管理工具,收錄了大部分的第三方包。多數自帶python的系統如mac osx, ubuntu都已經有現成的pip安裝著了。如果確實沒有pip可以去 https://pip.pypa.io/en/latest/installing.html#python-os-support 學習使用和下載,get-pip.py檔案下載到本地後,cd到同一資料夾下使用python get-pip.py就可以安裝了。

請務必一定確保要用的python及後面的虛擬環境可以使用pip工具,這是基礎工具。

pip基本使用

安裝模組

$pip install packageName           #最新的版本
$pip install packageName==1.0.0    #指定版本
$pip install 'packageName>=1.0.0'  #最低版本
$pip install http://my.package.repo/SomePackage-1.0.4.zip   #從指定網址資源安裝
$pip install ./downloads/SomePackage-1.0.4.tar.gz  #指定本地位置安裝

$pip install --find-links=http://some.archives.com/archives #從指定url下載安裝
$pip install --find-links=./downloads/ #從指定path下載安裝
$pip install --upgrade packageName #更新一個已經安裝過的過期模組

從需求檔案安裝模組

$pip freeze > requirements.txt     #將當前pip管理的模組資訊儲存進文字檔案
$pip install -r requirements.txt   #從文字檔案安裝依賴的模組

解除安裝

$pip uninstall packageName

查詢

$pip search name

檢視模組資訊

$pip show packageName

檢視pip管理了哪些模組

$pip list
$pip list --outdated  #檢視過期的模組

虛擬環境

我比較建議寫新的工程時建立一個虛擬環境,這樣便於管理依賴,如果是要在伺服器上執行的應用,也就便於部署。 python3已經自帶了虛擬環境工具venv,而python2還沒有,需要安裝一個叫virtualenv的模組才能使用虛擬環境。 virtualenv可以用pip安裝,這兩個工具用法完全相同,只是名字不同而已。

下面是使用方法,virtualenv的用法只是把pyvenv替換成virtualenv。因此不再複述。

venv基本使用

建立虛擬環境資料夾

$pyvenv venv

使用虛擬環境

$source venv/bin/activate

使用後會看到你的命令列每行前面多出一個(venv)字樣,表示你在使用虛擬環境

退出虛擬環境

對於非windows

$deactivate

對於windows

> path_to_env\Scripts\activate

文字編輯器

理論上是個文字編輯器就可以寫python程式,一般有自動補全和關鍵字高亮就可以了。推薦使用atom https://github.com/atom/atom/releases/ 可以命令列開啟,有優秀的包管理系統,一個非常先進好用的基於html技術的文字編輯器。記得安裝好後將tab鍵改成4個空格。不建議使用IDE。 寫程式必須對程式的細節瞭然於心,無論是程式碼還是工程檔案結構。IDE封裝了很多細節,不利於這一點。 學習IDE的使用同樣是件很費事的工作,比如eclipse。這個反人類的工具不知道誰設計出來的。 亂七八糟的設定不知所云,包管理也是一坨,還巨佔資源,我寫java都不會用它。而且由於IDE的不透明特性,如果碰到配置出錯不利於找到錯誤所在。

互動shell工具

這裡得隆重推薦ipython notebook--一個基於瀏覽器的python互動介面,優雅大方,功能強大。 不止可以執行python指令碼,還有使用shell命令和自帶的魔術命令,自動補全和關鍵字高亮自不必說,非常強大。


ipython notebook 安裝

anaconda已經自帶了該工具,其他的則需要安裝

 $pip install "ipython[notebook]"

ipython notebook 使用

ipython notebook 使用shell命令

只要在shell命令前面加!就可以了。

ipython notebook 使用魔術命令

ipython notebook封裝了許多常用命令,被稱為魔術命令。可以用%lsmagic檢視所有魔術命令, 具體可以檢視http://nbviewer.ipython.org/github/ipython/ipython/blob/3.x/examples/IPython%20Kernel/Cell%20Magics.ipynb


相關文章