安裝 Python 套件這篇有提到,若用傳統的手工方式,或是用 pip 工具安裝 Python 套件,都會遇到搞亂作業系統環境的問題。本篇要介紹的作法,可以解決此問題,保持作業系統的乾淨。

Python 生態圈中,過去都是使用 virtualenv 這套工具,來創建虛擬環境。但在 Python 3 的時代,新增了一個 venv  模組,讓我們不用額外安裝 virtualenv 套件,也能建立虛擬環境來安裝套件。所以如果你現在的環境都是在用 Python 3 了,那就使用 venv 即可,以下就是示範如何用 venv 模組創建 virtual environment (也就是虛擬環境啦,好繞口)。

雖然 venv 是 Python 3 內建的模組,但在 Debian 裡,venv 卻是由 python3-venv 套件所提供,所以我們得裝上這個套件,才有 venv 可以用:

# apt install python3-venv -y

然後,我習慣在自己的家目錄建立一個 venv 目錄,底下放各式各樣的虛擬環境方便測試:

$ mkdir ~/venv

接著就可以開始建立隔離環境了。比方延續前面的範例,我想要安裝 lxml 且不想弄亂作業系統環境,那我就會建立一個 ~/venv/lxml 來作為虛擬環境:

$ cd ~/venv/
$ python3 -m venv lxml

登登登,這樣就好了。然後我們可以進入這個虛擬環境:

$ cd ~/venv/lxml
$ source ./bin/activate

此時你會發現,提示字元前面出現了 (lxml) 字樣,代表你已經在這個虛擬環境中了。接著你可以開心的亂裝  Python 套件,不用擔心搞亂作業系統喔:

(lxml) $ pip install lxml # 安裝 lxml 至虛擬環境中

安裝完後,你也可在虛擬環境中執行 Python,確認 lxml 是否真的有裝好:

(lxml) $ python3
>>> import lxml
>>> exit()

沒有錯誤訊息就代表真的安裝好了可以正常 import。

最後,如果你要離開這個虛擬環境,只要執行:

(lxml) $ deactivate

這樣就離開這個虛擬環境了。

所以使用 Python 3 的 venv 來創建虛擬環境,使用 pip 來安裝套件解決相依性問題,這樣讓我們無論在測試或是佈署都方便許多。

下一篇介紹一下 pip 這個工具的使用方式,以及它有哪些限制,為更之後要介紹的 pipenv 鋪路…

One comment on “使用 python 3 的 venv 建立與系統隔離的安裝環境

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *