- Python基礎及應用
- 呂云翔 姚澤良 張揚等編著
- 5249字
- 2021-10-27 15:16:22
1.2 Python開發環境的搭建與使用
在1.2.1小節會介紹在主流操作系統上如何獲取Python,在1.2.2~1.2.5小節會介紹一些幫助我們更有效率地使用Python的工具。
1.2.1 獲取Python
在開始探索Python的世界之前,我們首先需要在自己的機器上安裝Python。值得高興的是,Python不僅免費、開源,而且堅持輕量級,安裝過程并不復雜。如果使用Linux系統,可能已經內置了Python(雖然版本有可能是較舊的);使用蘋果計算機(macOS系統)的話,一般也已經安裝了命令行版本的Python 2.x。在Linux或macOS系統上檢測Python 3是否安裝的最簡單辦法是使用終端命令,在終端(terminal)應用中輸入Python 3命令并按〈Enter〉鍵執行,觀察是否有對應的提示出現。至于Microsoft Windows系統,在目前最新的Windows 10版本上也并沒有內置Python,因此必須手動安裝。
1.在Windows上安裝
訪問python.org/download/并下載與計算機架構對應的Python 3安裝程序,一般而言只要有新版本,就應該選擇最新的版本。這里需要注意的是選擇對應架構的版本,為此我們先要搞清楚自己的系統是32位還是64位的,如圖1-1所示。

圖1-1 Python.org/download頁面(部分)
根據安裝程序的導引一步步進行,就能完成整個安裝。如果最終看到類似圖1-2這樣的提示,就說明安裝成功。

圖1-2 Python安裝成功的提示
這時檢查我們的“開始”菜單,就能看到Python應用程序,如圖1-3所示,其中有一個“IDLE”(意為“integrated development environment”)程序,我們可以點擊此項目開始在交互式窗口中使用Python Shell,如圖1-4所示。

圖1-3 安裝完成后的“開始”菜單
2.在Ubuntu和macOS上安裝
Ubuntu是諸多Linux發行版中受眾較多的一個系列。我們可以通過Applicatons(應用程序)中的添加應用程序進行安裝,在其中搜索Python 3,并在結果中找到對應的包,進行下載。如果安裝成功,我們將在Applications中找到Python IDLE,進入Python Shell中。

圖1-4 IDLE的界面
訪問python.org/download/并下載對應的Mac平臺安裝程序,根據安裝包的指示進行操作,我們最終將看到類似圖1-5的成功提示。

圖1-5 Mac上的安裝成功提示
關閉該窗口,并進入Applications(或者是從LaunchPad頁面打開)中,就能找到Python Shell IDLE,啟動該程序,看到的結果應該和Windows平臺上的結果類似。
1.2.2 IDLE
前面我們提到了集成開發環境(Integrated Development Environment,IDLE),那么什么是集成開發環境?集成開發環境是一種輔助程序開發人員開發軟件的應用軟件,在開發工具內部就可以輔助編寫源代碼文本,并編譯打包成為可用的程序,有些甚至可以設計圖形接口。
也就是說IDLE的作用就是把跟寫代碼有關的東西全部打包一起,方便程序員的開發。Python在安裝的時候就自帶了一個簡單的IDLE,在Windows 10下可以通過直接搜索IDLE來啟動,如圖1-6所示。

圖1-6 啟動IDLE
對于其他的Windows系統,可以在開始菜單中找到Python的文件夾中選中IDLE啟動。
如圖1-7所示,我們馬上就看到了熟悉的界面。

圖1-7 IDLE啟動界面
這就是所謂的集成,如果仔細觀察上面的菜單欄,可以看到IDLE還有文件編輯和調試功能。接下來通過一個簡單的例子來快速熟悉一下IDLE的基礎使用和一些Python的基礎知識。
1)首先在IDLE中輸入以下代碼,如圖1-8所示。

圖1-8 在IDLE中執行代碼
這里出現了一個沒見過的名字print和一種不同的語法,不用擔心,這里只要知道print(...)會把括號中表達式的返回值打印到屏幕上就行了。
2)接下來選擇File→New File建立一個新文件輸入同樣的兩行代碼,注意輸入"print("后就會出現相應的代碼提示,而且全部輸入后print也會被高亮,這是IDE的基本功能之一,如圖1-9所示。

圖1-9 在IDLE中輸入代碼
3)然后選擇Run→Run Module來運行這個腳本,這時候會提示保存文件,選擇任意位置保存后再運行可以得到如圖1-10所示的結果。

圖1-10 執行腳本結果
竟然只有一個12450,那么剛才我們輸入的第一句執行了嗎?事實是的確執行了,因為對于Python腳本來說,運行一遍就相當于每句代碼放到交互式解釋器里去執行。
那為什么第一句的返回值沒有被輸出呢?因為在執行Python腳本的時候返回值是不會被打印的,除非用print(...)要求把某些數值打印出來,這是Python腳本執行和交互式解釋器的區別之一。
當然這個過程也可以通過命令行完成,比如保存文件的路徑是C:\Users\Admin\Desk-top.py\1.py,我們只要在命令提示符中輸入python C:\Users\Admin\Desktop.py\1.py就可以執行這個Python腳本,這跟在IDLE中Run Module(執行腳本)是等價的,如圖1-11所示。
除了直接執行腳本,很多時候還需要去調試程序,IDLE同樣提供了調試的功能,如圖1-12所示,我們在第二行上右擊可以選擇Set Breakpoint設置斷點。

圖1-11 在命令提示符中執行

圖1-12 設置斷點
4)然后選擇IDLE主窗口的Debug→Debugger啟動調試器,然后再在文件窗口的Run→Run Module運行腳本,這時候程序很快就會停在有斷點的一行,如圖1-13所示。

圖1-13 在第二行暫停
5)接下來可以在Debug Control中點擊Go繼續執行,也可以點擊Step步進,還可以查看調用堆棧查看各種變量數值等。一旦代碼變多變復雜,這樣去調試是一種非常重要的排除程序問題的方法。
總體來說,IDLE基本提供了一個IDE應該有的功能,但是其項目管理能力幾乎沒有,比較適合單文件的簡單腳本開發。
1.2.3 Pycharm的使用
雖然Python自帶的IDLE Shell是絕大多數人對Python的第一印象,但如果通過Python語言編寫程序、開發軟件,它并不是唯一的工具,很多人更愿意使用一些特定的編輯器或者由第三方提供的集成開發環境軟件(IDE)。借助IDE的力量,我們可以提高開發的效率,但對開發者而言,沒有“最好的”,只有最適合自己的,習慣一種工具后再接受另一種總是不容易的。這里簡單介紹一下PyCharm——一個由JetBrain公司出品的Python開發工具,談談它的安裝和配置。
可以在官網中下載到該軟件:
https://www.jetbrains.com/pycharm/download/#section=windows
Pycharm支持Windows、Mac、Linux三大平臺,并提供Professional和Community Edition兩種版本選擇(見圖1-14)。其中前者需要購買正版(提供免費試用),后者可以直接下載使用。前者功能更為豐富,但后者也足以滿足一些普通的開發需求。

圖1-14 PyCharm的下載頁面
選擇對應的平臺并下載后,安裝程序(見圖1-15)將會導引我們完成安裝,安裝完成后,從“開始”菜單中(對于Mac和Linux系統是從Applications中)打開PyCharm,就可以創建自己的第一個Python項目了(見圖1-16)。

圖1-15 PyCharm安裝程序(Windows平臺)
創建項目后,還需要進行一些基本的配置。可以在菜單欄中使用File→Settings打開Py-Charm設置。

圖1-16 PyCharm創建新項目
首先是修改一些UI上的設置,比如修改界面主題,如圖1-17所示。

圖1-17 PyCharm更改界面主題
在編輯界面中顯示代碼行號,如圖1-18所示。
修改編輯區域中代碼的字體和大小,如圖1-19所示。
如果是想要設置軟件UI中的字體和大小,可在Appearance&Behavior中修改,如圖1-20所示。
在運行編寫的腳本前,需要添加一個Run/Debug配置,主要是選擇一個Python解釋器,如圖1-21所示。
還可以更改代碼高亮規則,如圖1-22所示。

圖1-18 PyCharm設置為顯示代碼行號

圖1-19 PyCharm設置代碼字體和大小

圖1-20 調整PyCharm UI界面的字體和大小

圖1-21 在PyCharm中添加Python Run/Debug配置

圖1-22 編輯代碼高亮設置
最后,PyCharm提供了一種便捷的(Package)包安裝界面,使得我們不必使用pip或者easyinstall命令(兩個常見的包管理命令)。在設置中找到當前的Python Interpreter(解釋器),點擊右側的“+”按鈕,搜索想要安裝的包名,點擊安裝即可,如圖1-23所示。

圖1-23 Interpreter安裝的Package
1.2.4 Jupyter Notebook
Jupyter Notebook并不是一個IDE工具,正如它的名字,這是一個類似于“筆記本”的輔助工具。Jupyter是面向編程過程的,而且由于其獨特的“筆記”功能,代碼和注釋在這里會顯得非常整齊直觀。我們可以使用“pip install jupyter”命令來安裝。在PyCharm中也可以通過Interpreter管理來安裝,如圖1-24所示。

圖1-24 通過PyCharm安裝Jupyter
如果在安裝過程中碰到了問題,可訪問Jupyter安裝官網獲取更多信息:https://jupyter.readthedocs.io/en/latest/install.html
在PyCharm中新建一個Jupyter Notebook文件,如圖1-25所示。

圖1-25 新建一個Notebook文件
點擊“運行”按鈕后,會要求輸入token,這里我們可以不輸入,直接點擊Run Jupyter Notebook,按照提示進入筆記本頁面,如圖1-26所示。

圖1-26 點擊Run Jupyter Notebook后的提示
Notebook文檔被設計為由一系列單元(Cell)構成,主要有兩種形式的單元:代碼單元用于編寫代碼,運行代碼的結果顯示在本單元下方;Markdown單元用于文本編輯,采用markdown的語法規范,可以設置文本格式、插入鏈接、圖片甚至數學公式,如圖1-27所示。

圖1-27 Notebook的編輯頁面
Jupyter Notebook還支持插入數學公式、制作演示文稿、特殊關鍵字等。正因如此,Jupyter在創建代碼演示、數據分析等方面非常受歡迎,掌握這個工具將會使我們的學習和開發更為輕松快捷。
1.2.5 強大的包管理器pip
包管理器是什么?常年使用Windows的人可能聞所未聞,但是在編程領域常見的Linux系統生來就伴隨著包管理器。本節將學習什么是包,以及為什么專門要用包管理器去管理它。
本章會從包和包管理器的概念和必要性出發,介紹Python中的包管理器pip。
1.包
在介紹包管理器前,先明確一個概念,什么是“包”?
假設有這種場景,A寫了一段代碼可以連接數據庫,B現在需要寫一個圖書館管理系統要用A這段代碼提供的功能,由于代碼重復向來是程序員討厭的東西,所以A就可以把代碼打包后給B使用來避免重復勞動,在這種情況下A打包后的代碼就是一個包,或者說這個包是B程序的一個依賴項。簡單來說,包就是發布出來的具有一定功能的程序或代碼庫,它可以被別的程序使用。
2.包管理器
包的概念看起來簡單無比,只要B寫代碼的時候通過某種方式找到A分發的包就行了,然后B把這個包加到了自己的項目中,卻無法正常使用,可能的原因是A寫這個包的時候還依賴了C的包。于是B不得不再費一番周折去找C發布的包,然而卻因為版本不對應仍然無法使用,B又不得不浪費時間去配置依賴關系。
在真正的開發中,包的依賴關系很多時候可能會非常復雜,人工去配置不僅容易出錯而且往往費時費力,在這種需求下包管理器就出現了,但是包管理器的優點可遠不止這一點。
1)節省搜索時間:很多網齡稍微大一點的人可能還記得早些年百花齊放的“×××軟件站”——相比每個軟件都去官網下載,用這樣的軟件站去集中下載軟件往往可以節省搜索的時間,包管理器也是如此,所有依賴都可以通過同一個源下載,非常方便。
2)減少惡意軟件:剛才其實已經提到了,在包管理器中還有一個很重要的概念是“源”,也就是所有下載的來源。一般來說只要采用可信的源,就可以完全避免惡意軟件。
3)簡化安裝過程:如果經常在Windows下使用各種各樣的Installer(安裝工具)的話,大部分人可能已經厭倦于點擊“我同意”“下一步”“下一步”“完成”這種毫無意義的重復勞動,而包管理器可以一鍵完成這些操作。
4)自動安裝依賴:正如一開始所說,依賴關系是一種非常令人頭疼的問題,有時候在Windows上運行軟件彈出類似“缺少xxx.dll,因此程序無法運行”的錯誤就是依賴缺失導致的,而包管理器就很好地處理了各種依賴項的安裝。
5)有效版本控制:在依賴關系里還有一點就是版本的問題,比如某個特定版本的包可能需要依賴另一個特定版本的包,而現在要升級這個包,依賴的包的版本該怎么處理呢?不用擔心,包管理器會處理好一切。
所以在編程的領域,包管理器一直是一個不可或缺的工具。
3.pip
Python之所以優美強大,優秀的包管理功不可沒,而pip正是集上述所有優點于一身的Python包管理。
但是這里有一個問題,正如我們之前看到的那樣,Python有很多版本,對應的pip也有很多版本,僅僅用pip是無法區分版本的。所以為了避免歧義,在命令行使用pip的時候可以用pip3來指定Python3.x的pip,如果同時還有多個Python3版本存在的話,那么還可以進一步用pip3.6來指明Python版本,這樣就解決了不同版本pip的問題。
我們先啟動一個命令提示符,然后輸入pip3就可以看到默認的提示信息,如圖1-28所示。
這里對常見的幾個pip指令進行介紹。
(1)pip3 search
pip3 search用來搜索名字中或者描述中包含指定字符串的包,比如這里輸入pip3 search numpy,就會得到如圖1-29所示的一個列表,其中左邊一列是具體的包名和相應的最新版本,稍后安裝的時候就指定這個包名,而右邊一列是簡單的介紹。由于Python的各種包都是在不斷更新的,所以這里實際顯示的結果可能會與書本上有所不同。

圖1-28 直接輸入pip3

圖1-29 pip3 search numpy
(2)pip3 list
pip3 list用來列出已經安裝的包和具體的版本,如圖1-30所示。
(3)pip3 check
pip3 check用來手動檢查依賴缺失問題,當然可能會有人質疑:之前不是講包管理器會自動處理好一切嗎,為什么還要手動檢查呢?依舊是考慮一個實際場景,比如現在包A依賴包B,同時包B依賴包C,這時候用戶卸載了包C,對于包A來說依賴是滿足的,但是對于包B來說就不是了,所以這時候就需要一個輔助手段來檢查這種依賴缺失。由于我們還沒有安裝過很多包,所以現在檢查一般不會有缺失的依賴,如圖1-31所示。

圖1-30 pip3 list

圖1-31 pip3 check
(4)pip3 download
pip3 download用來下載特定的Python包,但是不會安裝,這里以numpy為例,如圖1-32所示。

圖1-32 pip3 download numpy
要注意的是,默認會把包下載到當前目錄下。
(5)pip3 install
當我們要安裝某個包的時候,以numpy為例,只要輸入pip3 install numpy然后等待安裝完成即可,有包管理器的話比較簡單高效。pip會自動解析依賴項,然后安裝所有的依賴項。
另外由于之前已經下載過了numpy,所以這里安裝的時候會直接用緩存中的包進行安裝,如圖1-33所示。

圖1-33 pip3 install numpy
在看到Successfully installed之后即表示安裝成功。不過在安裝IPython的時候會遇到一個小問題,那就是在Windows和Linux下普通用戶是沒有權限用pip安裝的,所以在Linux下需要獲取root權限,而在Windows下需要一個管理員命令提示符。如果安裝失敗并且提示了類似“Permission denied”的錯誤,請務必檢查用戶權限。
當然還有一個問題,這里下載的源是什么呢?其實是Pypi,一個Python官方認可的第三方軟件源,它的網址是https://pypi.org/,在上面搜索手動安裝的效果是跟pip3 install一樣的。
(6)pip3 freeze
pip3 freeze用于列出當前環境中安裝的所有包的名稱和具體的版本,如圖1-34所示。

圖1-34 pip3 freeze
pip3 freeze和pip3 list的結果非常相似,但是很重要的一個區別是,pip3 freeze輸出的內容對于pip3 install來說是可以用來自動安裝的。如果將pip3 freeze的結果保存成文本文件,例如requirements.txt,則可以用命令pip3 install-r requirements.txt來安裝所有依賴項。
(7)pip3 uninstall
pip3 uninstall用來卸載某個特定的包,要注意的是這個包的依賴項和被依賴項不會被卸載,比如以卸載numpy為例,如圖1-35所示。

圖1-35 pip3 uninstall numpy
看到Successfully uninstalled就表示卸載成功了。
- The Complete Rust Programming Reference Guide
- Oracle Database In-Memory(架構與實踐)
- Backbone.js Blueprints
- TypeScript實戰指南
- Unity 2D Game Development Cookbook
- PHP與MySQL權威指南
- 零基礎看圖學ScratchJr:少兒趣味編程(全彩大字版)
- Unity 2017 Game AI Programming(Third Edition)
- 計算機應用基礎(第二版)
- MongoDB Administrator’s Guide
- Learning D3.js 5 Mapping(Second Edition)
- 基于MATLAB的控制系統仿真及應用
- 軟技能2:軟件開發者職業生涯指南
- The C++ Workshop
- Nginx Troubleshooting