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

sharkHead 程式技術 4個月前 • 0

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

PHP 與 Python 菜雞工程師
最近在努力學習 TypeScript,希望可以突破慧根的限制