Python 的虛擬環境 (virtual environment) 使用介紹

程式技術
sharkHead

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版

sharkHead
written by
sharkHead

後端打工仔,在下班後喜歡研究各種不同的技術。稍微擅長 PHP,並偶爾涉獵前端開發。個性就像動態語言般隨興,但渴望做事能像囉嗦的靜態語言那樣嚴謹。

0 則留言