天天看點

《Python核心程式設計(第二版)》——1.5 運作Python

本節書摘來自異步社群《python核心程式設計(第二版)》一書中的第1章,第1.5節,作者[美]wesley j. chun,宋吉廣 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

有三種不同的辦法來啟動python。最簡單的方式就是互動式的啟動解釋器,每次輸入一行python代碼來執行。另外一種啟動python的方法是運作python腳本。這樣會調用相關的腳本解釋器。最後一種辦法就是用內建開發環境中的圖形使用者界面運作python。內建開發環境通常整合了其他的工具,例如內建的調試器、文本編輯器,而且支援各種像cvs這樣的源代碼版本控制工具。

在指令行上啟動解釋器,你馬上就可以開始編寫python代碼。在unix,dos或其他提供指令行解釋器或shell視窗的系統中,都可以這麼做。學習python的最好方法就是在互動式解釋器中練習。在你需要體驗python的一些特性時,互動式解釋器也非常有用。

unix衍生系統(linux,macos x,solaris,freebsd等)

要通路python,除非你已經将python所在路徑添加到系統搜尋路徑之中,否則就必須輸入python的完整路徑名才可以啟動python。python一般安裝在/usr/bin或/usr/local/bin子目錄中。

我們建議讀者把python(python執行檔案,或jython執行檔案——如果你想使用java版的解釋器的話)添加到你的系統搜尋路徑之中,這樣你隻需要輸入解釋器的名字就可以啟動python解釋器了,而不必每次都輸入完整路徑。

要将python添加到搜尋路徑中,隻需要檢查你的登入啟動腳本,找到以set path或path=指令開始,後面跟着一串目錄的那行,然後添加解釋器的完整路徑。所有事情都做完之後,更新一下shell路徑變量。現在在unix提示符(根據shell的不同可能是%或$)處鍵入python(或jython)就可以啟動解釋器了,如下所示。

python啟動成功之後,你會看到解釋器啟動資訊,表明python的版本号及平台資訊,最後顯示解釋器提示符“>>>”等待你輸入python指令。

windoes/dos環境

為了把 python 添加到搜尋路徑中,你需要編輯 c:autoexec.bat 檔案并将完整的 python 安裝路徑添加其中。這通常是c:python或c:program files python(或是“program files”在dos下的簡寫名字c:progra~1python)。

要想在dos中将python添加到搜尋路徑中去,需要編輯c:autoexec.bat檔案,把python的安裝目錄添加上去。一般是c:python或c:program filespython(或者它在dos中的簡寫名字c:progra~1python)。在一個dos視窗中(它可以是純dos環境或是在windows中的啟動的一個dos視窗)啟動python的指令與unix作業系統是一樣的,都是“python”,它們唯一的差別在于提示符不同,dos中是c:>,如圖1-1所示。

《Python核心程式設計(第二版)》——1.5 運作Python

指令行選項

當從指令行啟動python的時候,可以給解釋器一些選項。這裡有部分選項可供選擇。

—d   提供調試輸出。

—o   生成優化的位元組碼(生成 .pyo 檔案)。

—s   不導入 site子產品以在啟動時查找python路徑。

—v    備援輸出(導入語句詳細追蹤)。

—m mod 将一個子產品以腳本形式運作。

—q opt 除法選項(參閱文檔)。

—c cmd 運作以指令行字元串形式送出的 python 腳本。

file   從給定的檔案運作python腳本(參閱後文)。

《Python核心程式設計(第二版)》——1.5 運作Python

不管哪種unix平台,python腳本都可以像下面這樣,在指令行上通過解釋器執行。

python腳本使用擴充名.py,上面的例子也說明了這一點。

unix平台還可以在不明确指定python解釋器的情況下,自動執行python 解釋器。如果你使用的是類unix平台,你可以在你的腳本的第一行使用shell魔術字元串(“sh-bang”)。

在#!之後寫上python解釋器的完整路徑,我們前面曾經提到,python解釋器通常安裝在 /usr/local/bin或/usr/bin目錄下。如果python沒有安裝到那裡,你就必須确認你的python解釋器确實位于你指定的路徑。錯誤的路徑将導緻出現類似于“找不到指令”的錯誤資訊。

有一個更好的方案,許多unix系統有一個指令叫env,位于/bin或/usr/bin中。它會幫你在系統搜尋路徑中找到python解釋器。如果你的系統擁有env,你的啟動行就可以改為下面這樣。

或者,如果你的env位于/bin的話,

當你不能确定python的具體路徑或者python的路徑經常變化時(但不能挪到系統搜尋路徑之外),env 就非常有用。當你在你的腳本首行書寫了合适的啟動指令之後,這個腳本就能夠直接執行。當調用腳本時,會先載入python解釋器,然後運作你的腳本。我們剛才提到,這樣就不必顯式調用python 解釋器了,而隻需要鍵入腳本的檔案名。

注意,在鍵入檔案名之前,必須先将這個檔案的屬性設定為可以執行。在檔案清單中,你的檔案應該将它設定為自己擁有rwx權限。如果在确定python安裝路徑,或者改變檔案權限,或使用chmod 指令時遇到困難,請和系統管理者一道檢查一下。

windows/dos環境

dos指令視窗不支援自動執行機制,不過至少在winxp當中,它能像在windows 中一樣做到通過輸入檔案名執行腳本,這就是“檔案類型”接口。這個接口允許windows根據檔案擴充名識别檔案類型,進而調用相應的程式來處理這個檔案。舉例來說,如果你安裝了帶有pythonwin的python,輕按兩下一個帶有.py擴充名的python腳本就會自動調用python或pythonwin ide(如果你安裝了的話)來執行你的腳本。運作以下指令就和輕按兩下它的效果一樣。

這樣無論是基于unix作業系統還是win32作業系統都可以無需在指令行指定python解釋器的情況下運作腳本,但是如果調用腳本時,得到類似“指令無法識别”之類的錯誤提示資訊,你也總能正确處理。

你也可以從圖形使用者界面環境運作python,你所需要的是支援python的gui程式。如果你已經找到了一個,很有可能它恰好也是內建開發環境。內建開發環境不僅僅是圖形接口,通常會帶有源代碼編輯器、追蹤和排錯工具。

idle可以說是unix平台下python的第一個內建開發環境(ide)。最初版本的idle也是guido van rossum開發的,在python1.5.2中,它首次露面。idle代表的就是ide,隻不過多了一個“l”。我猜測,idle是借用了“monty python”一個成員的名字[1]...嗯...idle基于tkinter,要運作它的話你的系統中必須先安裝tcl/tk。目前的python發行版都帶有一個迷你版的tcl/tk庫,是以就不再需要 tcl/tk 的完整安裝了。

如果你已經在系統中安裝好了python,或者你有一個python rpm包,可是它并沒有包含 idle或tkinter,那在你嘗試idle之前,必須先将這兩樣東西安裝好。(如果你需要,确實有一個獨立的tkinter rpm包可供下載下傳,以便和python一起工作)如果你是自己編譯的python,而且有tk庫可用,那tkinter 會自動編譯進python,而且tkinter和idle也會随python的安裝而安裝。

如果你打算運作idle,就必須找到你的标準庫安裝位置:/usr/local/lib/python2.x/idlelib/idle.py。如果你是自己編譯python,你會在/usr/local/bin 目錄中發現一個名為idle的腳本,這樣你就可以在shell指令行中直接運作idle。圖1-3是類unix系統下的idle界面。macos x 是一個非常類似unix(基于mach核心,bsd服務)的作業系統。在macos x下,python可以用傳統的unix編譯工具編譯。macos x發行版自帶一個編譯好的python解釋器,不過并沒有任何一個面向mac的特殊工具(比如gnu readline,ide等),當然也沒有tkinter和idle。

你可能會打算自己下載下傳并編譯一個出來,不過要小心一點,有時你新安裝的python會與apple預裝的版本混淆在一起。認真一點沒有壞處。你也可以通過 fink/finkcommander 和darwinports得到macos x版的python。

<a href="http://fink.sourceforge.net/">http://fink.sourceforge.net/</a>

<a href="http://darwinports.org">http://darwinports.org</a>

如果要得到最新mac版python的組建和資訊,請通路如下網頁

<a href="http://undefined.org/python">http://undefined.org/python</a>

<a href="http://pythonmac.org/packages">http://pythonmac.org/packages</a>

另一個選擇是從python站點下載下傳macos x的通用二進制包。這個磁盤映像檔案(dmg)要求作業系統版本至少為10.3.9,它适用于基于powerpc和intel硬體的mac機器。

《Python核心程式設計(第二版)》——1.5 運作Python

windows環境

pythonwin是python的第一個windows接口,并且還是個帶有圖形使用者界面的內建開發環境。pythonwin發行版本中包含windowsapi和com擴充。pythonwin本身是針對mfc庫編寫的,它可以作為開發環境來開發你自己的windows應用程式。你可以從下面給出的網頁中下載下傳并安裝它。

pythonwin通常被安裝在和python相同的目錄中,在它自己的安裝目錄c:python2xlib site-packagespythonwin中有可執行的啟動檔案pythonwin.exe。pythonwin擁有一個帶有顔色顯示的編輯器、一個新的增強版排錯器、互動shell視窗、com擴充和更多的有用特性。如圖1-4就是運作在windows上的pythonwin內建開發環境的螢幕截圖。

《Python核心程式設計(第二版)》——1.5 運作Python

你可以在下面由mark hammond維護的網站中找到更多的關于pythonwin和python針對windowns的擴充(也被稱為“win32all”)。

<a href="http://starship.python.net/crew/mhammond/win32/">http://starship.python.net/crew/mhammond/win32/</a>

<a href="http://sourceforge.net/projects/pywin32/">http://sourceforge.net/projects/pywin32/</a>

idle也有windows平台版本,這是由tcl/ tk和python/ tkinter的跨平台性特點決定的,它看上去很像unix平台下的版本,如圖1-5所示。

《Python核心程式設計(第二版)》——1.5 運作Python

在windows平台下,idle可以在python編譯器通常所在的目錄c:python2x下的子目錄libidlelib中找到。從dos指令行視窗中啟動idle,請調用idle.py。你也可以從windows環境中調用idle.py,但是會啟動一個不必要的dos視窗。取而代之的方法是輕按兩下idle.pyw,以.pyw作為擴充名的檔案不會通過打開dos指令行視窗來運作腳本。事實上你可以在桌面上建立一個到c:python2xlibidlelib\

idle.pyw的快捷方式,然後輕按兩下啟動就可以了,簡單吧!

很多的軟體開發專家事實上會選擇在他們喜歡的文本編輯器中編寫代碼,比如vi(m) 或者emacs。除了這些和上面提到到的內建開發環境,還有大量的開源和商業的內建開發環境,下面是個簡短的清單。

開源

idle(在python 發行版中自帶)

pythonwin+win32 extensions   

ipython(增強的互動式python)

ide studio(idle以及更多)

eclipse

商業

wingware 開發的wingide python內建開發環境

activestate 開發的komodo 內建開發環境

通用內建開發環境清單

<a href="http://wiki.python.org/moin/integrateddevelopmentenvironments">http://wiki.python.org/moin/integrateddevelopmentenvironments</a>