Python 的 pip 套件管理工具教學

任何一套程式語言都有其歷史淵源與優缺點,因此Python受到初學者的歡迎不是沒有原因的,個人認為Python有語法簡單、物件導向與眾多的Library可運用,想要網頁設計、資料庫、大數據、AI、自動化控制、遊戲等各種領域,好像只要學會Python即可行走天下。或許沒有人願意學習一套程式語言後,面對不同的領域又要再學習另一套,號稱萬用語言的Python能獲得初學者的青睞,的確就是那令人又愛又恨的五花八門模組(函式庫),所以本文探討如何利用 pip 安裝與移除自己想要的模組。

還記得筆者之前的「Python 初學者的懶人包 Anaconda 下載與安裝」的文章嗎?這個懶人包除了內建 Spyder 與Jupyter Notebook編輯器外,更包含了常用的模組,是初學者相當不錯的開發環境。下圖是安裝過Anaconda懶人包後使用「pip list」來看看安裝了那些模組,還真的不少。

 

但如果是手動安裝Python,除了內建的基本模組外,其他得靠自己安裝,我必較喜歡這樣,會用到才安裝,才不會造成一大堆無用的模組佔用空間與管理上的麻煩。下圖是自行安裝Python 3.7後的環境下的狀況(其實筆者還裝過Pillow)。

 

Python最為人稱道的是擁有數量盤大的第三方模組,這些模組強大又免費,可以節省程式設計師的自行開發的時間,只要安裝一下就可有現成的模組。由於開放式的模組架構,數量的增加衍生了管理的種種問題,於是為了讓Python更加的方便使用,利用階層式的結構來彈性規劃模組,這些被規劃的模組被打包成套件(Package),總之,不管是模組或套件,想要在Python中使用,就得需利用「pip」這個工具來安裝或卸載,簡單的說,pip就是一個 Python 安裝管理套件的工具。

一般來說,pip不用自行安裝,只要安裝Python就會自動裝上,開啟命令提示字元視窗,輸入「pip -V」(V為大寫)就可以知道目前pip的版本。

 

利用pip安裝第三方套件後,才可以在撰寫程式中來import使用,例如下圖執行一個使用import載入requests的模組,執行時出現No module named ‘requests’。

 

在第一行補上「import urllib」再次執行,結果一樣出現在載入requests模組的問題,那是urllib模組為內建的模組,在安裝Python時就已經安裝了,所以import urllib順利過關,但遇到import requests時找不到,所以出現錯誤訊息。

 

安裝套件很簡單,只要輸入「pip install  <套件名稱>」即可安裝,例如筆者安裝numpy套件會看到下載並出現成功的訊息。

 

安裝完後使用「pip list」來查看,已經出現numpy的模組套件了,且看到的版本是1.19.1。已安裝套件想要重新安裝是無法成功的,倘若numpy有新版本出來(如1.92.1)如何更新呢?那就要輸入「pip install -U  <套件名稱>」來更新。

 

至於套件的卸載也是很簡單,輸入「pip uninstall <套件名稱>」即可,如下圖是卸載numpy套件的畫面,不過卸載時會詢問你是否要處理,確定要卸載就按下【Y】。

 

其實安裝時也可以指定版本,例如下圖是直接安中1.19.1版的numpy套件。

 

就以numpy套件來說,其衍生的相關套件不少,想要搜尋也是OK的,如輸入「pip search  <套件名稱>」,下圖就是搜尋numpy衍伸出來套件清單,還真不少。

 

這麼多的套件與不同版本,常常會造成一個專案的運作,稍有差池,Bug不容易追,因此佈署專案時希望與開發環境一樣,因此pip提供了 freeze 的功能,讓開發者可以把目前所安裝的套件與其版本匯出成清單,之後再佈署時可以快速的安裝這份匯出的清單套件。下圖是輸入「pip freeze」後的畫面。

 

那pip list與pip freeze有什麼不同,下圖中可以發現使用freeze不會列出自己,且list是以清單的描述方式,雖然pip freeze –all也可以顯示出來,但感覺是為參數型態的清單,沒錯,就是為了安裝參數的清單,這樣才可以使用pip 一次安裝多個套件。

 

那怎麼使用pip來批次安裝呢?其實也不難,使用「pip freez > 檔案名稱」,將原本顯示在畫面上導向檔案內,下圖將目前自行裝的套件輸出到list.txt檔案內。

 

逮開輸出的文字檔,果然看到自行安裝的套件。

 

向筆者常常更換與升級電腦,或者要佈署環境,重新安裝套件是相當麻煩,只要將要安裝的套件寫在文字檔內,利用「pip install –r 文字檔」即可進行批次安裝,下圖是先pip list目前剛安裝完Python的套件清單,利用上述匯出的list.txt來匯入安裝,如下圖所示。

 

安裝後查看,果然自動安裝了list.txt內的numpy與Pillow兩個套件。

 

pip可是Python環境中管理模組的安裝、更新與移除的重要工具,但pip本身也會有新版的推出,如何替自己更新呢?其實當你使用pip時,當有新版推出來,你會發現有新版本更新的提醒。

 

提醒的訊息有更新的方式,直接輸入「python -m pip install –upgrade pip」來更新。

 

更新後使用pip發現已經看不到提醒訊息,且pip list查看,pip版本也更新了。

 

延伸閱讀:

Bloggerads載入中~

itwalker

或許技術與功力已遠遠不及時下年輕人,但試著去畫一個圓,圓不圓沒關係,盡力就好,如果覺得文章不錯的話,請大家按個「讚」或「+1」,感謝您的支持與鼓勵!歡迎加入我的粉絲團 : https://www.facebook.com/itwalker ,更多關於挨踢路人甲的文章: https://walker-a.com

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料