Python 的虛擬環境 (virtual environment) 使用介紹
Python,目前最夯的語言之一。
Python 之所以這麼流行,歸功其強大而廣泛的標準函式庫,還有數量不少的實用套件。
跟其他流行語言一樣,Python 也有自己的套件管理工具 pip,有需要的時候,一行指令安裝個套件,就可以幫助我們少寫很多程式碼。
pip3 install [套件名稱]
但是套件多其實也有個困擾,當你使用 Python 開發一陣子之後,某天你下個指令查看目前所有安裝的套件。
pip3 list
你可能會發現你安裝的套件,已經多到讓畫面已經塞不下了,一整個眼花撩亂,除此之外,當我們有兩個專案需要安裝同一個但是版本不同的套件時,目前 pip 是沒有提供這樣的功能。
這時候我們就可以使用 Python 的虛擬環境套件 (virtual environment) 來幫助我們管理專案的套件。
安裝並使用虛擬環境套件
python 3 預設就會裝 virtual environment 這個套件,因此我們可以建立一個名為 venv 的虛擬環境資料夾。
python3 -m venv venv
要啟用虛擬環境,輸入指令。
source venv/bin/activate
這個時候 terminal 的最上方就會多一個 (venv),代表目前已在虛擬環境中。
(venv)
# allen @ allendeMacBook-Pro in ~/code/python_3 [0:06:28]
$
原本指令是使用 python3 與 pip3,在虛擬環境中,都會變成 python 與 pip,可以少打一個 “3”(讚)。
我們可以使用 which 指令查看 python 與 pip 指令的路徑,確認是否已在虛擬環境。
(venv)
# allen @ allendeMacBook-Pro in ~/code/python_3/crawler [0:12:50]
$ which python
/Users/allen/code/python_3/venv/bin/python
這個時候,使用 pip 所安裝的套件,都只會在這個虛擬環境中,不會影響本機環境。
你可以在每個專案中建立個別的虛擬環境,彼此之間互不干擾,這麼做除了可以有效的管理套件,還可以在不同的專案中,安裝同一個但是不同版本的套件。
想要離開虛擬環境,可以輸入下方的指令, terminal 的上方的 (venv) 就會消失,代表已離開虛擬環境。
deactivate
其他常用的指令選項
剛建立的虛擬環境,通常都是只有基礎套件的乾淨狀態,如果想要在建立虛擬環境後,使用本機環境已安裝的套件,可以加上 --system-site-packages
這個選項。
python3 -m venv venv --system-site-packages
補充
Python 的虛擬環境套件除了官方預設的 virtualenv,還有其他類似套件,且功能一樣強大。
- pipenv
- poetry
詳細可以參考 Python虛擬環境指南2020版。